Function at 0x423860
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xec
mov esi, dword [esp + 0x104]
mov eax, dword [esp + 0x100]
lea ecx, [esp + 0x74]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.0043fc50
xor ebx, ebx
cmp eax, 0
jl 0x4240f4
mov dword [esp], esi
call fcn.00418bf0
mov ecx, eax
and ecx, 0xfffffffd
mov edx, eax
or edx, 0xfffffffd
xor edx, 0xffffffff
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
add eax, edx
mov word [esp + 0xc8], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xca], ax
mov dword [esp + 0xcc], esi
mov dword [esp], 0x848
call fcn.0043a6f0
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x74]
mov al, byte [esp + 0x84]
mov byte [esp + 0xb0], al
mov byte [esp + 0x88], 0x45
mov byte [esp + 0x89], 0x46
mov byte [esp + 0x8a], 0x47
mov byte [esp + 0x8b], 0x40
mov eax, 4
mov byte [esp + eax + 0x88], 0
add eax, 1
cmp eax, 5
jne 0x423934
xor eax, eax
cmp eax, 5
jae 0x42398d
movzx edx, byte [esp + eax + 0x88]
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 0x228e37f1
mov edi, eax
or edi, 0x228e37f1
add ecx, eax
add ecx, edi
add ecx, 1
xor ecx, edx
mov edx, ecx
xor edx, 0x33
shl ecx, 1
and ecx, 0x98
sub ecx, edx
add cl, 0x7e
mov byte [esp + eax + 0x88], cl
add eax, 1
jmp 0x423946
mov edi, dword [esp + 0x88]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x44ce64]
jb 0x4239a8
jmp 0x423a62
mov ecx, dword [0x44ce68]
cmp dword [ecx + ebx*8], 0x7fd4133f
sete dl
mov byte [esp + 0x3b], dl
test dl, 1
jne 0x4239c6
jmp 0x423a4f
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x423a51
mov eax, dword [0x44ce6c]
xor ecx, ecx
lea ecx, [esp + 0xe4]
lea ebp, [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x48]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], 0
call fcn.0043d480
mov ecx, 1
jmp 0x423a51
xor ecx, ecx
test byte [esp + 0x3b], 1
je 0x423a5a
jmp 0x423a62
add ebx, 1
jmp 0x423996
cmp ecx, 2
je 0x423a69
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x423fe9
mov dword [esp + 0x40], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x48]
jmp 0x423a86
mov dword [esp + 0x3c], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x38]
mov ecx, eax
xor ecx, 0xfffffbff
and ecx, eax
cmp ecx, 0
jne 0x423cd4
mov al, byte [esp + 0x68]
mov byte [esp + 0x90], al
mov byte [esp + 0x6c], 0x62
mov byte [esp + 0x6d], 0x4f
mov byte [esp + 0x6e], 0x4e
mov byte [esp + 0x6f], 0x51
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 6
jne 0x423ad2
xor eax, eax
mov dword [esp + 0xc4], ebx
cmp eax, 6
jae 0x423b3f
movzx edx, byte [esp + eax + 0x6c]
mov ebx, eax
add ebx, 0x79b4198d
mov ecx, 0x864be672
sub ecx, eax
and ecx, 0xa4227c56
and ebx, 0x5bdd83a9
or ecx, ebx
xor ecx, edx
xor ecx, 0x56
mov ebx, eax
add ebx, 0x8d
and ebx, edx
or ecx, ebx
mov ebx, eax
add ebx, 0x8d
and ebx, edx
sub ecx, ebx
mov ebx, dword [esp + 0xc4]
add cl, 0x3f
mov byte [esp + eax + 0x6c], cl
add eax, 1
jmp 0x423ae8
mov ebp, dword [esp + 0x44]
add ebp, 0x44
lea eax, [esp + 0x6c]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00424110
cmp eax, 0
setne al
test al, 1
jne 0x423b69
jmp 0x423cd4
mov al, byte [esp + 0x64]
mov byte [esp + 0x94], al
mov byte [esp + 0xb8], 0x9a
mov byte [esp + 0xb9], 0xc9
mov byte [esp + 0xba], 0x9c
mov byte [esp + 0xbb], 0xcf
mov byte [esp + 0xbc], 0xcc
mov byte [esp + 0xbd], 0xcd
mov eax, 6
mov byte [esp + eax + 0xb8], 0
add eax, 1
cmp eax, 0xa
jne 0x423ba9
xor ebx, ebx
cmp ebx, 0xa
jae 0x423c05
mov cl, byte [esp + ebx + 0xb8]
movzx eax, cl
mov dword [esp + 0xd4], eax
mov eax, ebx
and eax, 0xcf73db2e
xor eax, 0xcf73db2e
mov edx, ebx
and edx, 0x308c24d1
sub edx, eax
mov eax, edx
and eax, dword [esp + 0xd4]
shl eax, 1
sub edx, eax
add dl, cl
add dl, 0xe6
mov byte [esp + ebx + 0xb8], dl
add ebx, 1
jmp 0x423bbb
lea eax, [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00424110
cmp eax, 0
setne al
test al, 1
mov ebx, dword [esp + 0xc4]
jne 0x423c36
mov esi, dword [esp + 0x3c]
jmp 0x423cda
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x423c51
mov ecx, eax
mov dword [esp], ecx
call fcn.00408730
mov dword [esp + 0xd0], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.00418840
mov word [eax], 0
mov eax, dword [esp + 0x44]
mov ecx, dword [eax + 0x28]
mov edx, dword [esi]
mov esi, dword [esp + 0xd0]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0x10c]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], esi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0x108]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], esi
call fcn.00408740
mov esi, dword [esp + 0x3c]
jmp 0x423cda
mov esi, dword [esp + 0x3c]
jmp 0x423cda
cmp esi, 0
je 0x423ce5
mov edi, dword [esp + 0x40]
jmp 0x423d13
mov dword [esp], 0x10900
call fcn.0043a6f0
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x423cff
jmp 0x423d0f
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x44]
jmp 0x423fdb
mov esi, edi
jmp 0x423d13
cmp edi, esi
sete al
test al, 1
jne 0x423d21
jmp 0x423fc2
mov al, byte [esp + 0x58]
mov byte [esp + 0x98], al
mov byte [esp + 0x5c], 0x24
mov byte [esp + 0x5d], 0x3c
mov byte [esp + 0x5e], 0x25
mov byte [esp + 0x5f], 0x21
mov eax, 4
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 7
jne 0x423d45
mov dword [esp + 0x3c], esi
xor eax, eax
cmp eax, 7
jae 0x423d8f
movzx ecx, byte [esp + eax + 0x5c]
mov edx, eax
add edx, 0x70614589
xor edx, ecx
mov ecx, edx
add ecx, 0x12
mov esi, 0xad
sub esi, edx
and esi, 0xdc
and ecx, 0x23
sub ecx, esi
add cl, 0xdd
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x423d58
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xdc], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0xb4], al
mov byte [esp + 0x7c], 0x45
mov byte [esp + 0x7d], 0x46
mov byte [esp + 0x7e], 0x47
mov byte [esp + 0x7f], 0x40
mov eax, 4
mov byte [esp + eax + 0x7c], 0
add eax, 1
cmp eax, 5
jne 0x423dc9
xor eax, eax
cmp eax, 5
jae 0x423e19
movzx edx, byte [esp + eax + 0x7c]
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 0x228e37f1
mov esi, eax
or esi, 0x228e37f1
add ecx, eax
add ecx, esi
add ecx, 1
xor ecx, edx
mov edx, ecx
xor edx, 0x33
shl ecx, 1
and ecx, 0x98
sub ecx, edx
add cl, 0x7e
mov byte [esp + eax + 0x7c], cl
add eax, 1
jmp 0x423dd8
mov esi, dword [esp + 0x7c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44ce64]
jb 0x423e31
jmp 0x423ef5
mov ecx, dword [0x44ce68]
cmp dword [ecx + ebp*8], 0x7fd4133f
sete dl
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x423e4f
jmp 0x423ee2
mov edx, dword [ecx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x423ee4
mov eax, dword [0x44ce6c]
xor ecx, ecx
lea ecx, [esp + 0xe4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xdc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
lea eax, [esp + 0xc8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], 0
call fcn.0043d480
mov ecx, 1
jmp 0x423ee4
xor ecx, ecx
test byte [esp + 0x3a], 1
je 0x423eed
jmp 0x423ef5
add ebp, 1
jmp 0x423e1f
cmp ecx, 2
je 0x423efc
mov esi, eax
mov al, byte [esp + 0x4c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x50], 0x8b
mov byte [esp + 0x51], 0x87
mov byte [esp + 0x52], 0x86
mov byte [esp + 0x53], 1
mov eax, 4
mov byte [esp + eax + 0x50], 0
add eax, 1
cmp eax, 7
jne 0x423f20
xor eax, eax
cmp eax, 7
jae 0x423f58
mov dl, byte [esp + eax + 0x50]
mov ebp, ebx
mov ebx, eax
shl ebx, 1
and ebx, 0x42
mov ecx, eax
xor ecx, 0x21
add ecx, ebx
mov ebx, ebp
xor cl, dl
add cl, 0x5b
mov byte [esp + eax + 0x50], cl
add eax, 1
jmp 0x423f2f
mov eax, dword [esp + 0x50]
cmp esi, eax
sete al
test al, 1
jne 0x423f67
jmp 0x423f93
xor eax, eax
mov edx, edi
jmp 0x423f6d
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x423f84
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x423f6d
cmp eax, 0
je 0x423f8f
mov dword [eax], 0
xor esi, esi
jmp 0x423f93
cmp esi, 0
jge 0x423fab
mov esi, dword [esp + 0x3c]
mov dword [esp], esi
call fcn.0043a760
mov eax, 2
jmp 0x423fb3
xor eax, eax
mov esi, dword [esp + 0x3c]
jmp 0x423fb3
cmp eax, 0
je 0x423fc2
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
jmp 0x423fdb
mov eax, dword [edi]
cmp eax, 0
je 0x423fd3
mov ecx, edi
add ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x423fd9
mov dword [esp + 0x40], esi
jmp 0x423fd9
xor eax, eax
test eax, eax
mov eax, edi
je 0x423a86
jmp 0x423fe7
jmp 0x423fe9
mov eax, dword [esp + 0x48]
mov dword [esp], eax
call fcn.0043a760
mov eax, dword [esp + 0x74]
mov dword [esp + 0xd8], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0xac], al
mov byte [esp + 0xa4], 0x45
mov byte [esp + 0xa5], 0x46
mov byte [esp + 0xa6], 0x47
mov byte [esp + 0xa7], 0x40
mov eax, 4
mov byte [esp + eax + 0xa4], 0
add eax, 1
cmp eax, 5
jne 0x424033
xor eax, eax
cmp eax, 5
jae 0x42408c
movzx edx, byte [esp + eax + 0xa4]
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 0x228e37f1
mov edi, eax
or edi, 0x228e37f1
add ecx, eax
add ecx, edi
add ecx, 1
xor ecx, edx
mov edx, ecx
xor edx, 0x33
shl ecx, 1
and ecx, 0x98
sub ecx, edx
add cl, 0x7e
mov byte [esp + eax + 0xa4], cl
add eax, 1
jmp 0x424045
mov edi, dword [esp + 0xa4]
xor ebp, ebp
cmp ebp, dword [0x44ce64]
jb 0x42409f
jmp 0x4240f4
mov esi, ebx
mov eax, dword [0x44ce68]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4240b7
jmp 0x4240e4
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x4240e4
mov ecx, dword [0x44ce6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xc], eax
call fcn.0043d480
test bl, 1
je 0x4240ed
mov ebx, esi
jmp 0x4240f4
add ebp, 1
mov ebx, esi
jmp 0x424095
and bl, 1
movzx eax, bl
add esp, 0xec
pop esi
pop edi
pop ebx
pop ebp
ret