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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov esi, dword [esp + 0xfc]
mov eax, dword [esp + 0xf8]
lea ecx, [esp + 0x7c]
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.00440530
mov dword [esp + 0x44], 0
cmp eax, 0
jl 0x42471b
mov dword [esp], esi
call fcn.00418c80
shl eax, 1
mov word [esp + 0xc4], ax
movzx eax, ax
sub eax, 0xfffffffe
mov word [esp + 0xc6], ax
mov dword [esp + 0xc8], esi
mov dword [esp], 0x848
call fcn.0043b670
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x7c]
mov al, byte [esp + 0x8c]
mov byte [esp + 0xb8], al
mov byte [esp + 0x90], 0x17
mov byte [esp + 0x91], 0x16
mov byte [esp + 0x92], 0x15
mov byte [esp + 0x93], 0x14
mov eax, 4
mov byte [esp + eax + 0x90], 0
add eax, 1
cmp eax, 5
jne 0x423dff
xor eax, eax
cmp eax, 5
jae 0x423ea3
movzx edx, byte [esp + eax + 0x90]
mov ebx, eax
add ebx, 0xa08a9b7c
mov edi, 0x5f756483
sub edi, eax
mov ecx, 0x5f756483
sub ecx, eax
and edi, ecx
and edi, 0x487ea14a
and ebx, 0xb7815eb5
mov ecx, edx
xor ecx, 0x487ea14a
or edi, ebx
mov ebx, edi
xor ebx, 0xffffffff
and ecx, ebx
xor edx, 0xb7815eb5
and edi, edx
or ecx, edi
mov edx, ecx
and edx, 0x91
mov edi, ecx
and edi, 0x91
mov ebx, ecx
and ebx, 2
xor ebx, 2
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x93
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x90], cl
add eax, 1
jmp 0x423e11
mov edi, dword [esp + 0x90]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44cd20]
jb 0x423ebe
jmp 0x423f76
mov edx, dword [0x44cd24]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x423ede
jmp 0x423f65
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x423f65
mov eax, dword [0x44cd28]
xor ecx, ecx
lea ecx, [esp + 0xdc]
lea ebx, [esp + 0xc4]
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 + 0x58]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.0043e090
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x423f6e
jmp 0x423f76
add ebp, 1
jmp 0x423eac
cmp ecx, 2
je 0x423f7d
mov edi, eax
mov dword [esp + 0x44], 0
cmp edi, 0
jl 0x4245d9
xor esi, esi
mov dword [esp + 0x44], 0
xor ebx, ebx
mov edi, dword [esp + 0x58]
jmp 0x423fa0
mov ecx, dword [edi + 0x3c]
shr ecx, 1
mov eax, edi
add eax, 0x38
mov dword [esp + 0xd8], eax
mov eax, dword [edi + 0x38]
and eax, 0x400
cmp eax, 0
mov dword [esp + 0x54], edi
jne 0x424236
mov al, byte [esp + 0x78]
mov byte [esp + 0x98], al
mov byte [esp + 0x40], 0x5a
mov byte [esp + 0x41], 9
mov byte [esp + 0x42], 0x76
mov byte [esp + 0x43], 0x77
xor eax, eax
mov dword [esp + 0xc0], esi
mov dword [esp + 0x48], ecx
cmp eax, 4
jae 0x4240c1
movzx ecx, byte [esp + eax + 0x40]
mov edx, eax
xor edx, 0x7245c541
mov ebp, eax
or ebp, 0x8dba3abe
and ebp, edx
mov edi, ebx
mov ebx, eax
or ebx, 0x8dba3abe
add ebx, ebp
mov edx, ecx
and edx, 0xe2
xor edx, 0xb0080e2
mov ebp, ecx
add ebp, 1
xor ecx, 0xffffffff
or ecx, 0xf47f7b1d
add ecx, ebp
mov ebp, ebx
and ebp, 0xb8084e2
xor ebp, 0xb8084e2
mov esi, ebx
add esi, 1
xor ebx, 0xffffffff
or ebx, 0xf47f7b1d
add ebx, esi
or ebp, ebx
mov ebx, edi
mov edi, dword [esp + 0x54]
and ecx, 0xff7ffbff
or edx, ecx
xor edx, ebp
mov esi, edx
xor esi, 0x800400
xor edx, 0xc42321b6
mov ecx, esi
or ecx, 0x3b5cda49
and ecx, edx
and esi, 0xc4a325b6
xor esi, 0xc4a325b7
sub ecx, esi
mov edx, ecx
shl edx, 1
and edx, 2
mov esi, ecx
shl esi, 1
and esi, 2
add esi, 0xff
sub ecx, esi
mov esi, dword [esp + 0xc0]
add ecx, edx
mov byte [esp + eax + 0x40], cl
mov ecx, dword [esp + 0x48]
add eax, 1
jmp 0x423ff2
mov ebp, edi
add ebp, 0x44
lea eax, [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.00424730
cmp eax, 0
setne al
test al, 1
mov ecx, dword [esp + 0x48]
jne 0x4240ed
jmp 0x424236
mov al, byte [esp + 0x74]
mov byte [esp + 0x9c], al
mov byte [esp + 0x4c], 0xca
mov byte [esp + 0x4d], 0x19
mov byte [esp + 0x4e], 0xc4
mov byte [esp + 0x4f], 0x17
mov byte [esp + 0x50], 0x14
mov byte [esp + 0x51], 0x15
mov eax, 6
mov byte [esp + eax + 0x4c], 0
add eax, 1
cmp eax, 8
jne 0x42411b
xor eax, eax
cmp eax, 8
jae 0x424160
mov dl, byte [esp + eax + 0x4c]
mov esi, eax
shl esi, 1
and esi, 0x8c
mov ecx, eax
xor ecx, 0xc6
add ecx, esi
mov esi, dword [esp + 0xc0]
xor cl, dl
add cl, 0x22
mov byte [esp + eax + 0x4c], cl
mov ecx, dword [esp + 0x48]
add eax, 1
jmp 0x42412a
mov dword [esp + 0x3c], ebx
lea eax, [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov ebx, ecx
call fcn.00424730
cmp eax, 0
jne 0x424188
mov ebx, dword [esp + 0x3c]
jmp 0x424236
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4241a3
mov ecx, eax
mov dword [esp], ecx
call fcn.00408300
mov ebx, eax
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
call fcn.004188a0
mov word [eax], 0
mov eax, dword [edi + 0x28]
mov edi, ebx
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx]
mov ecx, edx
add ecx, 1
xor edx, 0xffffffff
or edx, 0x10
add edx, ecx
xor ecx, ecx
cmp edx, 0
setne cl
mov edx, dword [esp + 0x104]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], edi
and ecx, 1
mov dword [esp + 4], ecx
call dword [esp + 0x100]
and al, 1
movzx eax, al
mov ecx, dword [esp + 0x44]
and cl, 1
movzx ecx, cl
or ecx, eax
cmp ecx, 0
setne al
and al, 1
mov dword [esp + 0x44], eax
mov ebx, dword [esp + 0x3c]
mov dword [esp], edi
call fcn.00408310
jmp 0x424234
jmp 0x424236
cmp ebx, 0
je 0x42423f
mov edi, esi
jmp 0x424266
mov dword [esp], 0x10900
call fcn.0043b670
mov edi, eax
cmp edi, 0
jne 0x424262
xor ebx, ebx
mov eax, 2
mov edi, dword [esp + 0x54]
jmp 0x4245cd
mov ebx, edi
jmp 0x424266
cmp edi, ebx
jne 0x4245b2
mov al, byte [esp + 0x68]
mov byte [esp + 0xa0], al
mov byte [esp + 0x6c], 0xf0
mov byte [esp + 0x6d], 0xf8
mov byte [esp + 0x6e], 0xf3
mov byte [esp + 0x6f], 0xf3
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 8
jne 0x424292
xor eax, eax
cmp eax, 8
jae 0x4242ce
movzx edx, byte [esp + eax + 0x6c]
mov esi, 0x2b
sub esi, eax
or esi, edx
mov ecx, 0x2b
sub ecx, eax
and ecx, edx
xor esi, 0xffffffff
or ecx, esi
add cl, 0xdc
mov byte [esp + eax + 0x6c], cl
add eax, 1
jmp 0x4242a1
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xcc], eax
mov al, byte [esp + 0x80]
mov byte [esp + 0xbc], al
mov byte [esp + 0x84], 0x17
mov byte [esp + 0x85], 0x16
mov byte [esp + 0x86], 0x15
mov byte [esp + 0x87], 0x14
mov eax, 4
mov byte [esp + eax + 0x84], 0
add eax, 1
cmp eax, 5
jne 0x424317
mov dword [esp + 0x3c], ebx
xor eax, eax
cmp eax, 5
jae 0x4243bf
movzx edx, byte [esp + eax + 0x84]
mov ebx, eax
add ebx, 0xa08a9b7c
mov esi, 0x5f756483
sub esi, eax
mov ecx, 0x5f756483
sub ecx, eax
and esi, ecx
and esi, 0x487ea14a
and ebx, 0xb7815eb5
mov ecx, edx
xor ecx, 0x487ea14a
or esi, ebx
mov ebx, esi
xor ebx, 0xffffffff
and ecx, ebx
xor edx, 0xb7815eb5
and esi, edx
or ecx, esi
mov edx, ecx
and edx, 0x91
mov esi, ecx
and esi, 0x91
mov ebx, ecx
and ebx, 2
xor ebx, 2
imul ebx, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, ebx
xor ecx, 0x93
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x84], cl
add eax, 1
jmp 0x42432d
mov esi, dword [esp + 0x84]
xor ebp, ebp
mov ebx, dword [esp + 0x3c]
mov ecx, 2
cmp ebp, dword [0x44cd20]
jb 0x4243de
jmp 0x4244a4
mov edx, dword [0x44cd24]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3a], bl
test bl, 1
jne 0x4243fe
jmp 0x42448f
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, esi
je 0x42448f
mov eax, dword [0x44cd28]
xor ecx, ecx
lea ecx, [esp + 0xdc]
lea ebx, [esp + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xcc]
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 + 0xd0]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.0043e090
mov ecx, 1
test byte [esp + 0x3a], 1
mov ebx, dword [esp + 0x3c]
je 0x42449c
jmp 0x4244a4
add ebp, 1
jmp 0x4243cc
cmp ecx, 2
je 0x4244ab
mov esi, eax
mov al, byte [esp + 0x5c]
mov byte [esp + 0xa4], al
mov byte [esp + 0x60], 0xcd
mov byte [esp + 0x61], 0x31
mov byte [esp + 0x62], 0x32
mov byte [esp + 0x63], 0xb3
mov eax, 4
mov byte [esp + eax + 0x60], 0
add eax, 1
cmp eax, 5
jne 0x4244cf
xor eax, eax
cmp eax, 5
jae 0x424551
mov dword [esp + 0xd4], esi
movzx ecx, byte [esp + eax + 0x60]
mov ebx, eax
add ebx, 0xb2c9ddcc
mov edx, ebx
and edx, ecx
shl edx, 1
add ebx, ecx
mov ecx, ebx
sub ecx, edx
mov edx, ebx
and edx, 1
mov ebp, ecx
and ebp, 2
xor ebp, 2
and ebx, 1
xor esi, esi
cmp ebx, 0
je 0x42451c
mov esi, ebp
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, esi
xor ecx, 3
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x60], cl
mov ecx, eax
and ecx, 1
xor eax, 0xffffffff
or eax, 1
sub ecx, eax
mov eax, ecx
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0xd4]
jmp 0x4244de
mov eax, dword [esp + 0x60]
cmp esi, eax
jne 0x424587
xor eax, eax
mov edx, edi
jmp 0x42455f
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x424576
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x42455f
cmp eax, 0
je 0x424583
mov dword [eax], 0
jmp 0x424583
xor esi, esi
jmp 0x424587
cmp esi, 0
jge 0x42459b
mov dword [esp], ebx
call fcn.0043b6f0
mov eax, 2
jmp 0x42459f
xor eax, eax
jmp 0x42459f
cmp eax, 0
sete cl
test cl, 1
jne 0x4245b2
mov esi, edi
mov edi, dword [esp + 0x54]
jmp 0x4245cd
mov eax, dword [edi]
cmp eax, 0
setne cl
test cl, 1
jne 0x4245c1
jmp 0x4245c7
mov esi, edi
add esi, eax
jmp 0x4245cb
mov esi, ebx
jmp 0x4245cb
xor eax, eax
test eax, eax
je 0x423fa0
jmp 0x4245d7
jmp 0x4245d9
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.0043b6f0
mov esi, dword [esp + 0x7c]
mov al, byte [esp + 0xa8]
mov byte [esp + 0xb4], al
mov byte [esp + 0xac], 0x17
mov byte [esp + 0xad], 0x16
mov byte [esp + 0xae], 0x15
mov byte [esp + 0xaf], 0x14
mov eax, 4
mov byte [esp + eax + 0xac], 0
add eax, 1
cmp eax, 5
jne 0x42461c
xor eax, eax
cmp eax, 5
jae 0x4246c0
movzx edx, byte [esp + eax + 0xac]
mov ebx, eax
add ebx, 0xa08a9b7c
mov edi, 0x5f756483
sub edi, eax
mov ecx, 0x5f756483
sub ecx, eax
and edi, ecx
and edi, 0x487ea14a
and ebx, 0xb7815eb5
mov ecx, edx
xor ecx, 0x487ea14a
or edi, ebx
mov ebx, edi
xor ebx, 0xffffffff
and ecx, ebx
xor edx, 0xb7815eb5
and edi, edx
or ecx, edi
mov edx, ecx
and edx, 0x91
mov edi, ecx
and edi, 0x91
mov ebx, ecx
and ebx, 2
xor ebx, 2
imul ebx, edi
mov edi, ecx
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
xor ecx, 0x93
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xac], cl
add eax, 1
jmp 0x42462e
mov edi, dword [esp + 0xac]
xor ebp, ebp
cmp ebp, dword [0x44cd20]
jb 0x4246d3
jmp 0x42471b
mov eax, dword [0x44cd24]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4246e9
jmp 0x42470f
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x42470f
mov ecx, dword [0x44cd28]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.0043e090
test bl, 1
je 0x424716
jmp 0x42471b
add ebp, 1
jmp 0x4246c9
mov eax, dword [esp + 0x44]
and al, 1
movzx eax, al
add esp, 0xe4
pop esi
pop edi
pop ebx
pop ebp
ret