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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe8
mov esi, dword [esp + 0x100]
mov eax, dword [esp + 0xfc]
lea ecx, [esp + 0x78]
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.00440af0
xor ebx, ebx
cmp eax, 0
jl 0x423b72
mov dword [esp], esi
call fcn.00419010
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
mov ecx, eax
and ecx, 2
or eax, 2
add ecx, eax
mov word [esp + 0xca], cx
mov dword [esp + 0xcc], esi
mov dword [esp], 0x848
call fcn.0043bc60
mov dword [esp + 0x54], eax
mov esi, dword [esp + 0x78]
mov al, byte [esp + 0x88]
mov byte [esp + 0xb4], al
mov byte [esp + 0x8c], 0x9d
mov byte [esp + 0x8d], 0x9e
mov byte [esp + 0x8e], 0x9f
mov byte [esp + 0x8f], 0x90
mov eax, 4
mov byte [esp + eax + 0x8c], 0
add eax, 1
cmp eax, 6
jne 0x42345b
xor eax, eax
cmp eax, 6
jae 0x42349d
mov dl, byte [esp + eax + 0x8c]
movzx edi, dl
mov ecx, eax
add ecx, 0xef86c965
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 7
mov byte [esp + eax + 0x8c], cl
add eax, 1
jmp 0x42346d
mov edi, dword [esp + 0x8c]
xor ebp, ebp
cmp ebp, dword [0x44ce38]
jb 0x4234b8
mov ecx, 2
jmp 0x423570
mov edx, dword [0x44ce3c]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x4234d8
jmp 0x42355f
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x42355f
mov eax, dword [0x44ce40]
xor ecx, ecx
lea ecx, [esp + 0xe0]
lea ebx, [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 + 0x54]
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.0043e410
mov ecx, 1
test byte [esp + 0x3b], 1
jne 0x42356e
add ebp, 1
jmp 0x4234a6
jmp 0x423570
cmp ecx, 2
je 0x423577
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x423a7a
mov dword [esp + 0x44], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x54]
jmp 0x423594
mov dword [esp + 0x3c], esi
mov edi, dword [eax + 0x3c]
shr edi, 1
mov esi, eax
add esi, 0x38
mov dword [esp + 0x48], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x423768
mov al, byte [esp + 0x74]
mov byte [esp + 0x94], al
mov byte [esp + 0x40], 0xb2
mov byte [esp + 0x41], 0xe7
mov byte [esp + 0x42], 0xe6
mov byte [esp + 0x43], 0xe1
xor eax, eax
cmp eax, 4
jae 0x4235f4
mov cl, byte [esp + eax + 0x40]
mov dl, al
add dl, 0xd9
xor dl, cl
add dl, 0xc3
mov byte [esp + eax + 0x40], dl
add eax, 1
jmp 0x4235d8
mov ebp, dword [esp + 0x48]
add ebp, 0x44
lea eax, [esp + 0x40]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00423b90
cmp eax, 0
setne al
test al, 1
jne 0x42361e
jmp 0x423768
mov al, byte [esp + 0x70]
mov byte [esp + 0x98], al
mov byte [esp + 0xbc], 0xa2
mov byte [esp + 0xbd], 0x8f
mov byte [esp + 0xbe], 0xa0
mov byte [esp + 0xbf], 0xb1
mov byte [esp + 0xc0], 0xb0
mov byte [esp + 0xc1], 0xb3
mov eax, 6
mov byte [esp + eax + 0xbc], 0
add eax, 1
cmp eax, 0xa
jne 0x42365e
xor eax, eax
cmp eax, 0xa
jae 0x42369b
mov cl, byte [esp + eax + 0xbc]
mov dl, al
add dl, 0x5d
xor dl, cl
add dl, 0x2f
mov byte [esp + eax + 0xbc], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x423670
lea eax, [esp + 0xbc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00423b90
cmp eax, 0
jne 0x4236c0
mov esi, dword [esp + 0x3c]
jmp 0x42376c
mov eax, edi
add eax, 0xc2ad302f
add eax, 1
sub eax, 0xc2ad302f
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4236e5
mov ecx, eax
mov dword [esp], ecx
call fcn.00408380
mov dword [esp + 0xd0], eax
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
call fcn.00418c70
mov word [eax], 0
mov eax, dword [esp + 0x48]
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 + 0x108]
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 + 0x104]
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.00408390
mov esi, dword [esp + 0x3c]
jmp 0x42376c
mov esi, dword [esp + 0x3c]
cmp esi, 0
je 0x423777
mov edi, dword [esp + 0x44]
jmp 0x42379e
mov dword [esp], 0x10900
call fcn.0043bc60
mov edi, eax
cmp edi, 0
jne 0x42379a
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x48]
jmp 0x423a6c
mov esi, edi
jmp 0x42379e
cmp edi, esi
jne 0x423a51
mov al, byte [esp + 0x64]
mov byte [esp + 0x9c], al
mov byte [esp + 0x68], 0xf0
mov byte [esp + 0x69], 0xc8
mov byte [esp + 0x6a], 0xf3
mov byte [esp + 0x6b], 0xf3
mov eax, 4
mov byte [esp + eax + 0x68], 0
add eax, 1
cmp eax, 6
jne 0x4237ca
xor eax, eax
cmp eax, 6
jae 0x4237f5
mov cl, byte [esp + eax + 0x68]
mov dl, al
add dl, 0x2c
xor dl, cl
add dl, 0x24
mov byte [esp + eax + 0x68], dl
add eax, 1
jmp 0x4237d9
mov eax, dword [esp + 0x68]
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xd8], eax
mov al, byte [esp + 0x7c]
mov byte [esp + 0xb8], al
mov byte [esp + 0x80], 0x9d
mov byte [esp + 0x81], 0x9e
mov byte [esp + 0x82], 0x9f
mov byte [esp + 0x83], 0x90
mov eax, 4
mov byte [esp + eax + 0x80], 0
add eax, 1
cmp eax, 6
jne 0x42383b
mov dword [esp + 0x3c], esi
mov dword [esp + 0x50], ebx
xor eax, eax
cmp eax, 6
jae 0x423885
mov dl, byte [esp + eax + 0x80]
movzx esi, dl
mov ecx, eax
add ecx, 0xef86c965
mov ebx, ecx
and ebx, esi
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 7
mov byte [esp + eax + 0x80], cl
add eax, 1
jmp 0x423855
mov eax, dword [esp + 0x80]
mov dword [esp + 0x4c], eax
xor ebp, ebp
mov ebx, dword [esp + 0x50]
cmp ebp, dword [0x44ce38]
jb 0x4238a8
mov esi, 2
jmp 0x423970
mov edx, dword [0x44ce3c]
cmp dword [edx + ebp*8], 0x7fd4133f
sete cl
xor esi, esi
mov byte [esp + 0x3a], cl
test cl, 1
jne 0x4238c8
jmp 0x42395f
mov edx, dword [edx + ebp*8 + 4]
mov esi, 2
cmp edx, dword [esp + 0x4c]
je 0x42395f
mov eax, dword [0x44ce40]
xor ecx, ecx
lea ecx, [esp + 0xe0]
lea ebx, [esp + 0xc8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xd8]
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 + 0xdc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x34], 0
call fcn.0043e410
mov esi, 1
test byte [esp + 0x3a], 1
jne 0x42396e
add ebp, 1
jmp 0x423896
jmp 0x423970
cmp esi, 2
je 0x423979
mov dword [esp + 0x4c], eax
mov al, byte [esp + 0x58]
mov byte [esp + 0xa0], al
mov byte [esp + 0x5c], 0xc5
mov byte [esp + 0x5d], 0xc1
mov byte [esp + 0x5e], 0xc2
mov byte [esp + 0x5f], 0x43
mov eax, 4
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 7
jne 0x42399d
xor eax, eax
cmp eax, 7
jae 0x4239e8
mov dl, byte [esp + eax + 0x5c]
mov ecx, eax
add ecx, 0xcf5283d0
mov ebx, ecx
shl ebx, 1
mov ebp, eax
add ebp, 0xf
sub ebp, ebx
mov ebx, dword [esp + 0x50]
and ebp, 0x2d
and ecx, 0xd2
or ecx, ebp
xor cl, dl
xor cl, 0x2d
add cl, 0xf0
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x4239ac
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x4c]
cmp ecx, eax
mov eax, ecx
jne 0x423a22
xor eax, eax
mov edx, edi
jmp 0x4239fc
mov ecx, edx
mov esi, dword [ecx]
cmp esi, 0
je 0x423a13
shr esi, 2
shl esi, 2
mov edx, ecx
add edx, esi
mov eax, ecx
jmp 0x4239fc
cmp eax, 0
je 0x423a1e
mov dword [eax], 0
xor eax, eax
jmp 0x423a22
cmp eax, 0
jge 0x423a3a
mov esi, dword [esp + 0x3c]
mov dword [esp], esi
call fcn.0043bd00
mov eax, 2
jmp 0x423a42
xor eax, eax
mov esi, dword [esp + 0x3c]
jmp 0x423a42
cmp eax, 0
je 0x423a51
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x48]
jmp 0x423a6c
mov eax, dword [edi]
cmp eax, 0
je 0x423a64
mov ecx, edi
add ecx, eax
mov dword [esp + 0x44], ecx
jmp 0x423a62
jmp 0x423a6a
mov dword [esp + 0x44], esi
jmp 0x423a6a
xor eax, eax
test eax, eax
mov eax, edi
je 0x423594
jmp 0x423a78
jmp 0x423a7a
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.0043bd00
mov eax, dword [esp + 0x78]
mov dword [esp + 0xd4], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0xb0], al
mov byte [esp + 0xa8], 0x9d
mov byte [esp + 0xa9], 0x9e
mov byte [esp + 0xaa], 0x9f
mov byte [esp + 0xab], 0x90
mov eax, 4
mov byte [esp + eax + 0xa8], 0
add eax, 1
cmp eax, 6
jne 0x423ac4
xor eax, eax
cmp eax, 6
jae 0x423b0a
mov dl, byte [esp + eax + 0xa8]
movzx edi, dl
mov ecx, eax
add ecx, 0xef86c965
mov esi, ebx
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
mov ebx, esi
add cl, dl
add cl, 7
mov byte [esp + eax + 0xa8], cl
add eax, 1
jmp 0x423ad6
mov edi, dword [esp + 0xa8]
xor ebp, ebp
cmp ebp, dword [0x44ce38]
jb 0x423b1d
jmp 0x423b72
mov esi, ebx
mov eax, dword [0x44ce3c]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x423b35
jmp 0x423b62
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x423b62
mov ecx, dword [0x44ce40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc], eax
call fcn.0043e410
test bl, 1
je 0x423b6b
mov ebx, esi
jmp 0x423b72
add ebp, 1
mov ebx, esi
jmp 0x423b13
and bl, 1
movzx eax, bl
add esp, 0xe8
pop esi
pop edi
pop ebx
pop ebp
ret