Function at 0x420f70
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 + 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.0043fdd0
xor ebx, ebx
cmp eax, 0
jl 0x42182b
mov dword [esp], esi
call fcn.00414cf0
shl eax, 1
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.0043ad80
mov dword [esp + 0x4c], eax
mov esi, dword [esp + 0x78]
mov al, byte [esp + 0x88]
mov byte [esp + 0xb4], al
mov byte [esp + 0x8c], 0x1b
mov byte [esp + 0x8d], 0x1a
mov byte [esp + 0x8e], 0x1d
mov byte [esp + 0x8f], 0x1c
mov eax, 4
mov byte [esp + eax + 0x8c], 0
add eax, 1
cmp eax, 8
jne 0x421029
xor eax, eax
cmp eax, 8
jae 0x421088
movzx edx, byte [esp + eax + 0x8c]
mov edi, eax
and edi, 0x39f3ff06
xor edi, 0x39f3ff06
mov ecx, eax
and ecx, 0xc60c00f9
sub ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
xor edx, 0xe3
shl ecx, 1
and ecx, 0x38
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0x8c], cl
add eax, 1
jmp 0x42103b
mov edi, dword [esp + 0x8c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x44d300]
jb 0x4210a3
jmp 0x42115b
mov edx, dword [0x44d304]
cmp dword [edx + ebp*8], 0x7fd4133f
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x4210c3
jmp 0x42114a
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x42114a
mov eax, dword [0x44d308]
xor ecx, ecx
lea ecx, [esp + 0xe4]
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 + 0x4c]
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.0043d770
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x421153
jmp 0x42115b
add ebp, 1
jmp 0x421091
cmp ecx, 2
je 0x421162
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x42171a
mov dword [esp + 0x40], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x4c]
jmp 0x42117f
mov edi, dword [eax + 0x3c]
shr edi, 1
mov ecx, eax
add ecx, 0x38
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
jne 0x4213ae
mov al, byte [esp + 0x6c]
mov byte [esp + 0x94], al
mov byte [esp + 0x70], 0xd6
mov byte [esp + 0x71], 0xfb
mov byte [esp + 0x72], 0xfa
mov byte [esp + 0x73], 0xf9
mov eax, 4
mov byte [esp + eax + 0x70], 0
add eax, 1
cmp eax, 5
jne 0x4211c9
mov dword [esp + 0x3c], ebx
xor eax, eax
cmp eax, 5
jae 0x42120a
mov cl, byte [esp + eax + 0x70]
mov dl, al
add dl, 0x7f
xor dl, cl
add dl, 0x85
mov byte [esp + eax + 0x70], dl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 6
mov ebx, eax
xor ebx, 1
add eax, ebx
sub eax, edx
add eax, ecx
jmp 0x4211dc
mov ebp, dword [esp + 0x44]
add ebp, 0x44
lea eax, [esp + 0x70]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421840
cmp eax, 0
mov ebx, dword [esp + 0x3c]
je 0x4213ae
mov dword [esp + 0x48], esi
mov al, byte [esp + 0x68]
mov byte [esp + 0x98], al
mov byte [esp + 0xbc], 0xee
mov byte [esp + 0xbd], 0x3b
mov byte [esp + 0xbe], 0xe8
mov byte [esp + 0xbf], 0x39
mov byte [esp + 0xc0], 0x38
mov byte [esp + 0xc1], 0x27
mov eax, 6
mov byte [esp + eax + 0xbc], 0
add eax, 1
cmp eax, 0xa
jne 0x421276
xor esi, esi
cmp esi, 0xa
jae 0x4212e0
movzx edx, byte [esp + esi + 0xbc]
mov ecx, esi
add ecx, 0xd35c8e4b
mov ebx, ecx
or ebx, edx
mov eax, esi
add eax, 0x4b
or ecx, eax
and ecx, edx
xor ecx, ebx
mov eax, ecx
shl eax, 1
and eax, 0x10
mov edx, ecx
xor edx, 0x88
add edx, eax
mov eax, ecx
shl eax, 1
and eax, 2
and ecx, 1
and edx, 0xfe
or edx, ecx
xor edx, 1
add edx, eax
mov byte [esp + esi + 0xbc], dl
add esi, 1
jmp 0x421288
lea eax, [esp + 0xbc]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.00421840
cmp eax, 0
mov ebx, dword [esp + 0x3c]
jne 0x421309
mov esi, dword [esp + 0x48]
jmp 0x4213ae
mov eax, edi
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov esi, dword [esp + 0x48]
jne 0x421328
mov ecx, eax
mov dword [esp], ecx
call fcn.004097b0
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.00414950
mov word [eax], 0
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xe0]
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 + 0x10c]
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 + 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], edi
call fcn.004097c0
jmp 0x4213ac
jmp 0x4213ae
cmp esi, 0
je 0x4213b9
mov edi, dword [esp + 0x40]
jmp 0x4213e0
mov dword [esp], 0x10900
call fcn.0043ad80
mov edi, eax
cmp edi, 0
jne 0x4213dc
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x44]
jmp 0x42170c
mov esi, edi
jmp 0x4213e0
cmp edi, esi
jne 0x4216f1
mov al, byte [esp + 0x5c]
mov byte [esp + 0x9c], al
mov byte [esp + 0x60], 0x80
mov byte [esp + 0x61], 0x88
mov byte [esp + 0x62], 0x83
mov byte [esp + 0x63], 0x83
mov eax, 4
mov byte [esp + eax + 0x60], 0
add eax, 1
cmp eax, 5
jne 0x42140c
mov dword [esp + 0x48], esi
xor eax, eax
cmp eax, 5
jae 0x42145c
movzx ecx, byte [esp + eax + 0x60]
mov edx, eax
add edx, 0x471914e0
xor edx, ecx
mov ecx, edx
and ecx, 0x9f
mov esi, edx
and esi, 0x9f
xor esi, 0xffffffff
add edx, 0xa0
add edx, esi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x60], cl
add eax, 1
jmp 0x42141f
mov eax, dword [esp + 0x60]
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], 0x1b
mov byte [esp + 0x81], 0x1a
mov byte [esp + 0x82], 0x1d
mov byte [esp + 0x83], 0x1c
mov eax, 4
mov byte [esp + eax + 0x80], 0
add eax, 1
cmp eax, 8
jne 0x4214a2
xor eax, eax
cmp eax, 8
jae 0x421501
movzx edx, byte [esp + eax + 0x80]
mov esi, eax
and esi, 0x39f3ff06
xor esi, 0x39f3ff06
mov ecx, eax
and ecx, 0xc60c00f9
sub ecx, esi
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov edx, ecx
xor edx, 0xe3
shl ecx, 1
and ecx, 0x38
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0x80], cl
add eax, 1
jmp 0x4214b4
mov esi, dword [esp + 0x80]
xor ebp, ebp
mov dword [esp + 0x3c], ebx
mov ecx, 2
cmp ebp, dword [0x44d300]
jb 0x421520
jmp 0x4215f9
mov eax, edi
mov edi, esi
mov esi, dword [0x44d304]
cmp dword [esi + ebp*8], 0x7fd4133f
sete dl
xor ecx, ecx
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x421548
mov esi, edi
mov edi, eax
jmp 0x4215e8
mov edx, dword [esi + ebp*8 + 4]
mov ecx, 2
mov esi, edi
cmp edx, esi
mov edi, eax
je 0x4215e8
mov eax, dword [0x44d308]
xor ecx, ecx
lea ecx, [esp + 0xe4]
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 + 0x3c]
mov dword [esp + 0x34], 0
call fcn.0043d770
mov dword [esp + 0xd0], eax
mov ecx, 1
test byte [esp + 0x3a], 1
je 0x4215f1
jmp 0x4215f9
add ebp, 1
jmp 0x42150e
cmp ecx, 2
je 0x421605
mov esi, dword [esp + 0xd0]
mov al, byte [esp + 0x50]
mov byte [esp + 0xa0], al
mov byte [esp + 0x54], 0x9b
mov byte [esp + 0x55], 0xe7
mov byte [esp + 0x56], 0xe6
mov byte [esp + 0x57], 0x61
mov eax, 4
mov byte [esp + eax + 0x54], 0
add eax, 1
cmp eax, 8
jne 0x421629
xor eax, eax
cmp eax, 8
jae 0x42167f
movzx ecx, byte [esp + eax + 0x54]
mov edx, ecx
xor edx, 0xffffffff
mov ebx, eax
add ebx, 0xfae7865a
mov ebp, 0xa6
sub ebp, eax
or ebp, edx
add ebp, ebx
mov ebx, dword [esp + 0x3c]
mov edx, 0xa6
sub edx, eax
and edx, ecx
or edx, ebp
mov ecx, edx
and ecx, 1
or edx, 1
add edx, 0x42
add ecx, edx
mov byte [esp + eax + 0x54], cl
add eax, 1
jmp 0x421638
mov eax, dword [esp + 0x54]
cmp esi, eax
jne 0x4216bf
xor eax, eax
mov esi, edi
jmp 0x42168d
mov ecx, esi
mov edx, dword [ecx]
cmp edx, 0
setne bl
test bl, 1
jne 0x42169e
jmp 0x4216ac
shr edx, 2
shl edx, 2
mov esi, ecx
add esi, edx
mov eax, ecx
jmp 0x42168d
cmp eax, 0
mov ebx, dword [esp + 0x3c]
je 0x4216bb
mov dword [eax], 0
xor esi, esi
jmp 0x4216bf
cmp esi, 0
setge al
test al, 1
mov esi, dword [esp + 0x48]
jne 0x4216de
jmp 0x4216cf
mov dword [esp], esi
call fcn.0043ae30
mov eax, 2
jmp 0x4216e2
xor eax, eax
jmp 0x4216e2
cmp eax, 0
je 0x4216f1
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
jmp 0x42170c
mov eax, dword [edi]
cmp eax, 0
je 0x421704
mov ecx, edi
add ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x421702
jmp 0x42170a
mov dword [esp + 0x40], esi
jmp 0x42170a
xor eax, eax
test eax, eax
mov eax, edi
je 0x42117f
jmp 0x421718
jmp 0x42171a
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call fcn.0043ae30
mov eax, dword [esp + 0x78]
mov dword [esp + 0xd4], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0xb0], al
mov byte [esp + 0xa8], 0x1b
mov byte [esp + 0xa9], 0x1a
mov byte [esp + 0xaa], 0x1d
mov byte [esp + 0xab], 0x1c
mov eax, 4
mov byte [esp + eax + 0xa8], 0
add eax, 1
cmp eax, 8
jne 0x421764
xor eax, eax
cmp eax, 8
jae 0x4217c3
movzx edx, byte [esp + eax + 0xa8]
mov edi, eax
and edi, 0x39f3ff06
xor edi, 0x39f3ff06
mov ecx, eax
and ecx, 0xc60c00f9
sub ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
xor edx, 0xe3
shl ecx, 1
and ecx, 0x38
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0xa8], cl
add eax, 1
jmp 0x421776
mov edi, dword [esp + 0xa8]
xor ebp, ebp
cmp ebp, dword [0x44d300]
jb 0x4217d6
jmp 0x42182b
mov esi, ebx
mov eax, dword [0x44d304]
cmp dword [eax + ebp*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4217ee
jmp 0x42181b
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x42181b
mov ecx, dword [0x44d308]
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.0043d770
test bl, 1
je 0x421824
mov ebx, esi
jmp 0x42182b
add ebp, 1
mov ebx, esi
jmp 0x4217cc
and bl, 1
movzx eax, bl
add esp, 0xec
pop esi
pop edi
pop ebx
pop ebp
ret