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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xdc
mov esi, dword [esp + 0xf4]
mov eax, dword [esp + 0xf0]
lea ecx, [esp + 0x84]
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.0043f260
xor ecx, ecx
cmp eax, 0
jl 0x422412
mov dword [esp], esi
call fcn.00415cc0
mov ecx, eax
xor ecx, 0xffffffff
and ecx, 2
mov edx, eax
and edx, 0xfffffffd
imul edx, ecx
mov ecx, eax
and ecx, 2
or eax, 2
imul eax, ecx
add eax, edx
mov word [esp + 0xbc], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xbe], ax
mov dword [esp + 0xc0], esi
mov dword [esp], 0x848
call fcn.0043a220
mov dword [esp + 0x68], eax
mov esi, dword [esp + 0x84]
mov al, byte [esp + 0x8c]
mov byte [esp + 0xa8], al
mov byte [esp + 0x50], 0x1d
mov byte [esp + 0x51], 0x1a
mov byte [esp + 0x52], 0x1b
mov byte [esp + 0x53], 0x18
xor eax, eax
cmp eax, 4
jae 0x421c91
movzx edx, byte [esp + eax + 0x50]
mov edi, eax
add edi, 0x9f5017bb
mov ecx, eax
add ecx, 0xbb
and ecx, edx
mov ebx, 0x20afe844
sub ebx, eax
and ebx, 0x276e3997
and edi, 0xd891c668
or ebx, edi
xor ebx, 0x276e3997
or ebx, edx
xor ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 0xb0
xor ecx, 0x58
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x50], cl
add eax, 1
jmp 0x421c3b
mov edi, dword [esp + 0x50]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44bcdc]
jb 0x421ca9
jmp 0x421d6d
mov edx, dword [0x44bce0]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x421ccd
mov dl, byte [esp + 0x3b]
jmp 0x421d5e
mov ecx, dword [edx + ebp*8 + 4]
cmp ecx, edi
jne 0x421ce0
mov ecx, 2
mov dl, byte [esp + 0x3b]
jmp 0x421d5e
mov eax, dword [0x44bce4]
xor edx, edx
lea edx, [esp + 0xd4]
lea ebx, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], ecx
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], edx
mov eax, dword [esp + 0x68]
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.0043cba0
mov ecx, 1
mov dl, byte [esp + 0x3b]
test dl, 1
je 0x421d65
jmp 0x421d6d
add ebp, 1
jmp 0x421c97
cmp ecx, 2
je 0x421d74
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x422317
mov dword [esp + 0x5c], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x68]
mov dword [esp + 0x60], eax
jmp 0x421d95
mov eax, dword [esp + 0x60]
mov edi, dword [eax + 0x3c]
shr edi, 1
mov ecx, eax
add ecx, 0x38
mov dword [esp + 0xd0], ecx
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x421fd8
mov al, byte [esp + 0x78]
mov byte [esp + 0x90], al
mov byte [esp + 0x7c], 0x36
mov byte [esp + 0x7d], 0xdb
mov byte [esp + 0x7e], 0xda
mov byte [esp + 0x7f], 0xd9
mov eax, 4
mov byte [esp + eax + 0x7c], 0
add eax, 1
cmp eax, 7
jne 0x421ddf
mov dword [esp + 0x3c], ebx
xor eax, eax
cmp eax, 7
jae 0x421e4b
movzx ecx, byte [esp + eax + 0x7c]
mov ebx, eax
xor ebx, 0xbc68f650
mov edx, eax
or edx, 0x439709af
and edx, ebx
mov ebx, eax
and ebx, 2
xor ebx, 2
mov ebp, edx
and ebp, 0xfffffffd
imul ebp, ebx
mov ebx, eax
and ebx, 2
or edx, 2
imul edx, ebx
add edx, ebp
mov ebx, eax
xor ebx, 0x439709af
add ebx, edx
mov edx, ebx
and edx, ecx
shl edx, 1
add ebx, ecx
sub ebx, edx
add bl, 0x95
mov byte [esp + eax + 0x7c], bl
add eax, 1
jmp 0x421df2
mov ebp, dword [esp + 0x60]
add ebp, 0x44
lea eax, [esp + 0x7c]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422430
cmp eax, 0
mov ebx, dword [esp + 0x3c]
je 0x421fd8
mov dword [esp + 0x64], esi
mov al, byte [esp + 0x74]
mov byte [esp + 0x94], al
mov byte [esp + 0xb0], 0x26
mov byte [esp + 0xb1], 0xf1
mov byte [esp + 0xb2], 0x24
mov byte [esp + 0xb3], 0xf3
mov byte [esp + 0xb4], 0xec
mov byte [esp + 0xb5], 0xed
mov eax, 6
mov byte [esp + eax + 0xb0], 0
add eax, 1
cmp eax, 0xc
jne 0x421eb7
xor esi, esi
cmp esi, 0xc
jae 0x421f16
movzx ecx, byte [esp + esi + 0xb0]
mov eax, esi
add eax, 0x4584292c
mov edx, 0x3a7bd6d3
sub edx, esi
and edx, 0x40316506
and eax, 0xbfce9af9
mov ebx, ecx
xor ebx, 6
or edx, eax
mov eax, edx
xor eax, 0xffffffff
and ebx, eax
xor ecx, 0xf9
and edx, ecx
or ebx, edx
add bl, 0x24
mov byte [esp + esi + 0xb0], bl
add esi, 1
jmp 0x421ec9
lea eax, [esp + 0xb0]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00422430
cmp eax, 0
mov ebx, dword [esp + 0x3c]
jne 0x421f3f
mov esi, dword [esp + 0x64]
jmp 0x421fd8
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov esi, dword [esp + 0x64]
jne 0x421f5e
mov ecx, eax
mov dword [esp], ecx
call fcn.004095d0
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00415920
mov word [eax], 0
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0xd0]
mov edx, dword [eax]
and edx, 0x10
xor eax, eax
cmp edx, 0
setne al
mov edx, dword [esp + 0xfc]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp], edi
and eax, 1
mov dword [esp + 4], eax
call dword [esp + 0xf8]
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], edi
call fcn.004095e0
jmp 0x421fd8
cmp esi, 0
je 0x421fe3
mov edi, dword [esp + 0x5c]
jmp 0x422006
mov dword [esp], 0x10900
call fcn.0043a220
mov edi, eax
cmp edi, 0
jne 0x422002
xor esi, esi
mov eax, 2
jmp 0x42230b
mov esi, edi
jmp 0x422006
cmp edi, esi
jne 0x4222e4
mov al, byte [esp + 0x70]
mov byte [esp + 0x98], al
mov byte [esp + 0x48], 8
mov byte [esp + 0x49], 0x10
mov byte [esp + 0x4a], 0xf
mov byte [esp + 0x4b], 0xf
xor eax, eax
cmp eax, 4
jae 0x422061
movzx edx, byte [esp + eax + 0x48]
mov ecx, eax
add ecx, 0xecdcaec2
xor ecx, edx
add ecx, 0x6fde3d1f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
add cl, 0x16
mov byte [esp + eax + 0x48], cl
add eax, 1
jmp 0x42202f
mov dword [esp + 0x64], esi
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x48]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc8], eax
mov al, byte [esp + 0x88]
mov byte [esp + 0xac], al
mov byte [esp + 0x4c], 0x1d
mov byte [esp + 0x4d], 0x1a
mov byte [esp + 0x4e], 0x1b
mov byte [esp + 0x4f], 0x18
xor eax, eax
cmp eax, 4
jae 0x4220fc
movzx edx, byte [esp + eax + 0x4c]
mov esi, eax
add esi, 0x9f5017bb
mov ecx, eax
add ecx, 0xbb
and ecx, edx
mov ebx, 0x20afe844
sub ebx, eax
and ebx, 0x276e3997
and esi, 0xd891c668
or ebx, esi
xor ebx, 0x276e3997
or ebx, edx
xor ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 0xb0
xor ecx, 0x58
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x4c], cl
add eax, 1
jmp 0x4220a6
mov esi, dword [esp + 0x4c]
xor ebp, ebp
mov ebx, dword [esp + 0x3c]
mov ecx, 2
cmp ebp, dword [0x44bcdc]
jb 0x422118
jmp 0x4221f7
mov dword [esp + 0x58], esi
mov esi, ebx
mov edx, dword [0x44bce0]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x43], bl
test bl, 1
jne 0x422144
mov ebx, esi
mov esi, dword [esp + 0x58]
jmp 0x4221e6
mov ecx, dword [edx + ebp*8 + 4]
cmp ecx, dword [esp + 0x58]
mov ebx, esi
jne 0x42215e
mov ecx, 2
mov esi, dword [esp + 0x58]
jmp 0x4221e6
mov eax, dword [0x44bce4]
xor edx, edx
lea edx, [esp + 0xd4]
lea ebx, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xc8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x34], 0
call fcn.0043cba0
mov ecx, 1
mov esi, dword [esp + 0x58]
test byte [esp + 0x43], 1
je 0x4221ef
jmp 0x4221f7
add ebp, 1
jmp 0x422106
cmp ecx, 2
je 0x4221fe
mov esi, eax
mov al, byte [esp + 0x6c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x44], 0x2f
mov byte [esp + 0x45], 0x2b
mov byte [esp + 0x46], 0x2a
mov byte [esp + 0x47], 0xa9
xor eax, eax
cmp eax, 4
jae 0x42226e
movzx edx, byte [esp + eax + 0x44]
mov ecx, eax
add ecx, 7
and ecx, edx
xor edx, 0xffffffff
mov ebx, 0x5051dcf8
sub ebx, eax
and ebx, edx
or ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 0x2332a1b8
xor edx, 0x2332a1b8
xor ecx, 0x6e66af23
mov ebx, ecx
and ebx, edx
shl ebx, 1
xor ecx, edx
add ecx, ebx
mov ebx, dword [esp + 0x3c]
add cl, 1
mov byte [esp + eax + 0x44], cl
add eax, 1
jmp 0x42221f
mov eax, dword [esp + 0x44]
cmp esi, eax
jne 0x4222b6
xor eax, eax
mov esi, edi
jmp 0x42227c
mov ecx, esi
mov edx, dword [ecx]
cmp edx, 0
setne bl
test bl, 1
jne 0x42228d
jmp 0x42229b
shr edx, 2
shl edx, 2
mov esi, ecx
add esi, edx
mov eax, ecx
jmp 0x42227c
cmp eax, 0
setne cl
mov ebx, dword [esp + 0x3c]
test cl, 1
jne 0x4222ac
jmp 0x4222b2
mov dword [eax], 0
xor esi, esi
jmp 0x4222b6
cmp esi, 0
setge al
test al, 1
mov esi, dword [esp + 0x64]
jne 0x4222d5
jmp 0x4222c6
mov dword [esp], esi
call fcn.0043a2b0
mov eax, 2
jmp 0x4222d9
xor eax, eax
jmp 0x4222d9
cmp eax, 0
je 0x4222e4
mov dword [esp + 0x5c], edi
jmp 0x42230b
mov eax, dword [edi]
cmp eax, 0
setne cl
test cl, 1
jne 0x4222f3
jmp 0x4222fd
mov ecx, edi
add ecx, eax
mov dword [esp + 0x5c], ecx
jmp 0x422303
mov dword [esp + 0x5c], esi
jmp 0x422303
xor eax, eax
mov dword [esp + 0x60], edi
jmp 0x42230b
test eax, eax
je 0x421d95
jmp 0x422315
jmp 0x422317
mov esi, ebx
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.0043a2b0
mov eax, dword [esp + 0x84]
mov dword [esp + 0xc4], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0xa4], al
mov byte [esp + 0x54], 0x1d
mov byte [esp + 0x55], 0x1a
mov byte [esp + 0x56], 0x1b
mov byte [esp + 0x57], 0x18
xor eax, eax
cmp eax, 4
jae 0x4223ad
movzx edx, byte [esp + eax + 0x54]
mov edi, eax
add edi, 0x9f5017bb
mov ecx, eax
add ecx, 0xbb
and ecx, edx
mov ebx, 0x20afe844
sub ebx, eax
and ebx, 0x276e3997
and edi, 0xd891c668
or ebx, edi
xor ebx, 0x276e3997
or ebx, edx
xor ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 0xb0
xor ecx, 0x58
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x422357
mov edi, dword [esp + 0x54]
xor ebp, ebp
mov ecx, esi
cmp ebp, dword [0x44bcdc]
jb 0x4223bf
jmp 0x422412
mov eax, dword [0x44bce0]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4223d5
jmp 0x422402
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x422402
mov ecx, dword [0x44bce4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc], eax
call fcn.0043cba0
test bl, 1
je 0x42240b
mov ecx, esi
jmp 0x422412
add ebp, 1
mov ecx, esi
jmp 0x4223b5
and cl, 1
movzx eax, cl
add esp, 0xdc
pop esi
pop edi
pop ebx
pop ebp
ret