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

Disassembly:
mov eax, 0x41cd77
call fcn.0040dd80
mov eax, 0x6430
call fcn.0040d8e0
or dword [esp + 0x10], 0xffffffff
push ebx
push ebp
push esi
xor esi, esi
push edi
push 0x40
lea ecx, [esp + 0x7c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x14], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], esi
call fcn.00401e17
lea ecx, [esp + 0xe4]
mov dword [esp + 0x6448], esi
call fcn.0040b624
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
lea ecx, [esp + 0x88]
mov byte [esp + 0x6448], 2
call fcn.0040b624
mov byte [esp + 0x6448], 3
mov dword [0x43e0f4], 1
mov ebx, dword [esp + 0x10]
xor esi, esi
mov edi, 0x43a8f2
mov ebp, 0x44e244
inc esi
call fcn.0040bec4
test al, al
jne 0x402e8d
and dword [esp + 0x1c], 0
and dword [esp + 0x14], 0
mov eax, dword [esp + 0x1c]
cmp eax, 0x40
jl 0x4022c7
cmp byte [0x44f2cc], 0
je 0x402638
cmp eax, dword [esp + 0x7c]
jl 0x4022dc
mov eax, dword [esp + 0x1c]
inc eax
push eax
lea ecx, [esp + 0x7c]
call fcn.00401e36
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x14]
push 4
add ecx, eax
push 0x43e124
mov dword [0x43e12c], ecx
call fcn.00404312
test eax, eax
je 0x4025b3
push 0x43e124
call fcn.00401839
test al, al
je 0x4025bd
call fcn.00407173
test eax, eax
jne 0x402625
mov word [0x44e244], ax
movzx eax, byte [0x44e1b9]
push eax
movzx eax, word [0x44e1d8]
push 0x44e1bc
push 2
push eax
call fcn.0040455e
test eax, eax
je 0x402357
cmp eax, ebx
jle 0x40234f
mov ebx, eax
mov dword [esp + 0x10], ebx
cmp eax, esi
jg 0x40262b
movzx eax, word [0x44e1da]
push 0
push 0
push 3
push eax
call fcn.0040455e
test eax, eax
je 0x402380
cmp eax, ebx
jle 0x402378
mov ebx, eax
mov dword [esp + 0x10], ebx
cmp eax, esi
jg 0x40262b
movzx eax, word [0x44e1da]
push 0
push eax
push dword [0x44e188]
call fcn.004072e7
movzx eax, word [0x44e1da]
mov ecx, dword [0x44e188]
push 0x44e1be
call fcn.00401a52
xor eax, eax
push eax
push eax
push eax
movzx eax, word [0x44e1dc]
push eax
call fcn.0040455e
test eax, eax
je 0x4023d2
cmp eax, ebx
jle 0x4023ca
mov dword [esp + 0x10], eax
cmp eax, esi
jg 0x40262b
mov ecx, dword [0x44e188]
push 0x3000
lea eax, [esp + 0x3444]
push eax
movzx eax, word [0x44e1da]
push dword [0x44f244]
call fcn.004019bd
test al, al
je 0x402417
mov esi, 0x800
push esi
push ebp
lea eax, [esp + 0x3448]
push eax
call fcn.0040c08e
push esi
push ebp
push ebp
call fcn.00406253
movzx eax, word [0x44e1c2]
movzx ecx, word [0x44e1c0]
shl eax, 0x10
or eax, ecx
mov ecx, dword [0x43e12c]
push eax
add ecx, 0x28
call fcn.0040b83b
mov eax, dword [0x43e12c]
add eax, 0x30
xor ebx, ebx
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov eax, dword [0x43e12c]
add eax, 0x38
mov dword [eax], ebx
mov dword [eax + 4], ebx
mov eax, dword [0x43e12c]
lea ecx, [eax + 0x38]
push ecx
lea ecx, [eax + 0x30]
add eax, 0x28
push ecx
push eax
movzx eax, word [0x44e1da]
push eax
mov eax, dword [0x44e188]
call fcn.004018a8
movzx esi, word [0x44e1da]
mov edi, dword [0x44e188]
cmp esi, ebx
je 0x40248d
cmp edi, ebx
jne 0x4024bd
xor bl, bl
jmp 0x4024d3
push edi
call fcn.004040a3
movzx ebx, ax
lea eax, [edi + 2]
push eax
call fcn.004040a3
movzx eax, ax
lea ecx, [esi - 4]
cmp eax, ecx
ja 0x40248d
cmp ebx, 0x17
je 0x4024c4
push 0xfffffffffffffffc
pop ecx
sub ecx, eax
lea edi, [edi + eax + 4]
add esi, ecx
cmp esi, 4
jae 0x402491
jmp 0x40248d
push ebp
push 0x43a8f2
push 0x20
mov bl, 1
call fcn.00401653
lea ecx, [esp + 0x140]
call fcn.00401e73
push 0x2300
xor esi, esi
lea eax, [esp + 0x144]
push esi
push eax
mov byte [esp + 0x6454], 4
call fcn.0040d7f0
add esp, 0xc
push 0x800
push ebp
lea eax, [esp + 0x168]
push eax
call fcn.0040b3aa
mov eax, dword [0x43e12c]
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x1170], ecx
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x1174], eax
mov eax, dword [0x44e1d0]
mov dword [esp + 0x1190], eax
mov eax, dword [0x44e1d4]
mov dword [esp + 0x1194], eax
test bl, bl
jne 0x402585
push 5
push esi
lea eax, [esp + 0x148]
push eax
mov ecx, 0x432620
call fcn.0040125e
test eax, eax
je 0x402585
call fcn.00401b31
test eax, eax
je 0x402581
push ebp
lea ecx, [esp + 0xe8]
call fcn.0040b5ac
inc dword [esp + 0x1c]
add dword [esp + 0x14], 0x48
jmp 0x402585
inc dword [esp + 0x24]
add dword [esp + 0x3c], 1
lea ecx, [esp + 0x1160]
mov byte [esp + 0x6448], 3
adc dword [esp + 0x40], esi
call fcn.00401ca7
mov ebx, dword [esp + 0x10]
xor esi, esi
inc esi
mov edi, 0x43a8f2
jmp 0x4022b1
mov dword [esp + 0x10], 0x33
jmp 0x402634
mov ecx, dword [0x44e200]
mov eax, ecx
xor eax, dword [esp + 0x3c]
mov ebx, 0xffff
and eax, ebx
xor edx, edx
or eax, edx
je 0x4025f7
cmp ecx, ebx
jne 0x4025e2
cmp dword [0x44e204], edx
je 0x4025f7
push edi
mov ecx, 0x4325fc
call fcn.00401789
mov dword [esp + 0x10], 3
jmp 0x402634
mov ebx, 0x43e124
push ebx
call fcn.0040185e
test al, al
jne 0x40261e
cmp byte [0x44f2d4], al
je 0x402618
push ebx
call fcn.00401883
test al, al
jne 0x40261e
mov dword [esp + 0x30], esi
jmp 0x402634
and dword [esp + 0x30], 0
jmp 0x402634
mov dword [esp + 0x10], eax
jmp 0x402634
push ebp
push edi
push 0x1a
call fcn.00401653
mov dword [esp + 0x18], esi
cmp byte [0x44f2cc], 0
mov eax, dword [0x44e178]
mov dword [esp + 0x4c], eax
mov eax, dword [0x44e17c]
mov dword [esp + 0x50], eax
mov eax, dword [0x44e13c]
mov dword [esp + 0x6c], eax
mov eax, dword [0x44e140]
mov dword [esp + 0x54], eax
mov eax, dword [0x44e144]
mov dword [esp + 0x58], eax
je 0x4026c4
and dword [0x44f2d0], 0
push edi
call fcn.00401c6c
test al, al
mov eax, str.zx01
jne 0x402689
mov eax, 0x41d458
push 0x800
push eax
push edi
call fcn.004067a8
mov ecx, dword [0x44e158]
test ecx, ecx
je 0x4026a4
mov eax, dword [ecx]
push esi
call dword [eax]
and dword [0x44e158], 0
call fcn.00403c81
cmp byte [0x4377e1], 0
push edi
sete al
movzx eax, al
push eax
call fcn.0040bc11
and dword [esp + 0x14], 0
cmp dword [esp + 0x1c], 0
jle 0x402e16
mov eax, dword [esp + 0x2c]
shl eax, 6
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x70]
add ecx, eax
imul eax, eax, 0x48
add eax, dword [esp + 0x78]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xe4]
mov dword [0x43e12c], eax
call fcn.0040b662
cmp byte [0x44f2cc], 0
mov dword [esp + 0x74], eax
je 0x40278d
mov eax, dword [0x43e12c]
mov eax, dword [eax + 0x20]
cmp eax, dword [0x44f2d0]
je 0x40278d
movzx ecx, word [0x44e1f0]
cmp eax, ecx
jne 0x402754
mov esi, 0x43a8f2
push esi
call fcn.00401c6c
test al, al
mov eax, 0x41d44c
jne 0x402746
mov eax, 0x41d444
push 0x800
push eax
push esi
call fcn.004067a8
jmp 0x402764
push eax
push 0x800
push 0x43a8f2
call fcn.00401db2
mov eax, dword [0x43e12c]
mov ecx, dword [0x44e158]
mov eax, dword [eax + 0x20]
mov dword [0x44f2d0], eax
test ecx, ecx
je 0x402781
mov eax, dword [ecx]
push 1
call dword [eax]
and dword [0x44e158], 0
call fcn.00403c81
mov eax, dword [0x43e12c]
mov ebp, dword [eax]
add ebp, dword [0x44e180]
mov edi, dword [eax + 4]
adc edi, dword [0x44e184]
push 0
push 0x2000
push edi
push ebp
call fcn.0040e700
mov ebx, eax
mov eax, ebp
sub eax, ebx
mov esi, edi
sbb esi, edx
test edi, edi
jg 0x402859
jl 0x4027cd
test ebp, ebp
jae 0x402859
push 0x43a8f2
mov ecx, 0x4325fc
call fcn.00401789
cmp dword [esp + 0x20], 0
mov dword [esp + 0x10], 2
jne 0x40284c
mov eax, dword [0x44e180]
mov ecx, dword [0x44e184]
mov edx, eax
or edx, ecx
je 0x40284c
mov dword [esp + 0x38], ecx
xor ecx, ecx
push ecx
mov dword [esp + 0x38], eax
mov eax, dword [0x43e12c]
mov dword [0x44e180], ecx
mov dword [0x44e184], ecx
mov ebp, dword [eax + 4]
mov edi, dword [eax]
push 0x2000
push ebp
push edi
call fcn.0040e700
mov ebx, eax
mov eax, edi
sub eax, ebx
mov esi, ebp
sbb esi, edx
test ebp, ebp
jg 0x402859
jl 0x40283d
test edi, edi
jae 0x402859
push 0x43a8f2
mov ecx, 0x4325fc
call fcn.00401789
mov dword [esp + 0x10], 3
jmp 0x402dfa
mov ebp, 0x43a8f2
mov edi, 0x4325fc
cmp eax, dword [0x44e178]
jne 0x4028a2
cmp esi, dword [0x44e17c]
jne 0x4028a2
cmp byte [0x44f2cc], 0
jne 0x4028a2
mov eax, dword [0x44e13c]
mov ecx, dword [0x44e138]
sub eax, ebx
sub eax, ecx
cdq
add dword [0x44e140], eax
adc dword [0x44e144], edx
add ebx, ecx
mov dword [0x44e13c], ebx
jmp 0x402910
mov ecx, dword [0x44e158]
mov edx, dword [ecx]
push 0
push esi
push eax
call dword [edx + 0xc]
mov ecx, dword [0x44e158]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x2000
push dword [0x44e138]
mov dword [0x44e178], eax
mov dword [0x44e17c], edx
call fcn.004041c7
cdq
mov dword [0x44e140], eax
mov dword [0x44e144], edx
test edx, edx
jg 0x4028f5
jl 0x4028ed
test eax, eax
ja 0x4028f5
push ebp
mov ecx, edi
jmp 0x402847
mov eax, dword [0x44e138]
add eax, ebx
mov dword [0x44e13c], eax
mov eax, ebx
cdq
sub dword [0x44e140], eax
sbb dword [0x44e144], edx
push 4
mov esi, 0x43e124
push esi
call fcn.00404312
test eax, eax
je 0x4028ed
push esi
call fcn.00401814
test al, al
jne 0x4029c9
push ebp
mov ecx, edi
call fcn.00401789
mov ecx, dword [0x44e184]
mov eax, dword [0x44e180]
xor ebx, ebx
mov dword [esp + 0x10], 2
cmp dword [esp + 0x20], ebx
jne 0x402958
mov edx, eax
or edx, ecx
jne 0x4029b3
or eax, ecx
jne 0x402dfa
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov edx, eax
or edx, ecx
je 0x402dfa
mov dword [0x44e180], eax
mov dword [0x44e184], ecx
mov eax, dword [0x43e12c]
push dword [eax + 4]
push dword [eax]
call fcn.00403ebb
test eax, eax
jne 0x4028ed
push 4
push esi
call fcn.00404312
test eax, eax
je 0x4028ed
push esi
call fcn.00401814
test al, al
jne 0x4029cb
jmp 0x4028ed
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [0x44e180], ebx
mov dword [0x44e184], ebx
jmp 0x40297d
xor ebx, ebx
call fcn.00407468
mov esi, eax
cmp esi, ebx
je 0x4029e7
push ebp
mov ecx, edi
call fcn.00401789
mov dword [esp + 0x10], esi
jmp 0x402dfa
xor eax, eax
push ebx
mov word [0x44e244], ax
movzx eax, word [0x44e1b0]
push 0x44e192
push 2
push eax
call fcn.0040455e
cmp eax, ebx
je 0x402a29
cmp eax, dword [esp + 0x10]
jle 0x402a12
mov dword [esp + 0x10], eax
cmp eax, 1
jle 0x402a29
push 0x44e244
push ebp
push 0x1a
call fcn.00401653
jmp 0x402dfa
mov eax, dword [0x44e188]
cmp eax, ebx
je 0x402a3f
push eax
call fcn.0040d90b
pop ecx
mov dword [0x44e188], ebx
movzx eax, word [0x44e1b2]
push ebx
push ebx
push 3
push eax
call fcn.0040455e
cmp eax, ebx
je 0x402a63
cmp eax, dword [esp + 0x10]
jle 0x402a5e
mov dword [esp + 0x10], eax
cmp eax, 1
jg 0x402a17
movzx eax, word [0x44e1b2]
push 1
push eax
push dword [0x44e188]
call fcn.004072e7
mov ecx, dword [0x44e188]
push 0x3000
lea eax, [esp + 0x3444]
push eax
movzx eax, word [0x44e1b2]
push dword [0x44f244]
call fcn.004019bd
mov edi, 0x800
mov esi, 0x44e244
test al, al
je 0x402ac2
push edi
push esi
lea eax, [esp + 0x3448]
push eax
call fcn.0040c08e
push edi
push esi
push esi
call fcn.00406253
mov eax, dword [0x43e12c]
mov ecx, dword [eax + 0x28]
mov dword [0x44f248], ecx
mov ecx, dword [eax + 0x2c]
mov dword [0x44f24c], ecx
mov ecx, dword [eax + 0x30]
mov dword [0x44f250], ecx
mov ecx, dword [eax + 0x34]
mov dword [0x44f254], ecx
mov ecx, dword [eax + 0x38]
mov dword [0x44f258], ecx
mov eax, dword [eax + 0x3c]
push 0x44f258
mov dword [0x44f25c], eax
movzx eax, word [0x44e1b2]
push 0x44f250
push 0x44f248
push eax
mov eax, dword [0x44e188]
call fcn.004018a8
movzx eax, word [0x44e1b2]
mov ecx, dword [0x44e188]
push 0x44e194
call fcn.00401a52
mov eax, dword [esp + 0x74]
xor ebp, ebp
cmp eax, ebp
je 0x402b4b
cmp word [eax], bp
je 0x402b4b
push edi
push eax
push esi
call fcn.0040b3aa
mov eax, dword [0x43e12c]
lea ecx, [eax + 0x24]
push ecx
push dword [eax + 0x14]
push dword [eax + 0x10]
push dword [eax + 0x1c]
push esi
call fcn.0040d760
mov bl, al
cmp word [0x44e244], bp
je 0x402b98
cmp word [0x44e246], bp
je 0x402b98
mov eax, 0x44e248
cmp word [0x44e248], bp
je 0x402b98
cmp word [eax], 0x3a
jne 0x402b91
push 0x5f
pop ecx
mov word [eax], cx
inc eax
inc eax
cmp word [eax], bp
jne 0x402b85
push esi
push esi
call fcn.00406357
mov al, byte [0x4377e1]
test al, al
je 0x402bb6
cmp word [0x4398d2], 0x49
je 0x402bb6
mov cl, 1
jmp 0x402bb8
xor cl, cl
test al, al
push ebp
sete al
movzx eax, al
push ecx
push eax
push esi
call fcn.0040bc2d
test al, al
je 0x402e16
cmp byte [0x4377e1], 0
jne 0x402d9e
test bl, bl
je 0x402cd8
cmp byte [0x43776f], 0
jne 0x402dfa
xor edi, edi
cmp word [0x44e244], di
je 0x402dfa
cmp dword [0x437774], 1
je 0x402dfa
mov eax, dword [0x43e12c]
mov ecx, dword [eax + 0x1c]
cmp ecx, edi
je 0x402c20
cmp ecx, 0xb
jne 0x402c23
mov edi, dword [eax + 0x24]
mov esi, 0x44e244
push esi
call fcn.00403aca
test al, al
jne 0x402c87
cmp byte [0x4377bb], al
push edi
sete al
movzx eax, al
push eax
push esi
call fcn.00403aee
test eax, eax
je 0x402c87
push 1
push esi
call fcn.00403b84
cmp byte [0x4377bb], 0
push edi
sete al
movzx eax, al
push eax
push esi
call fcn.00403aee
test eax, eax
je 0x402c87
push esi
push 0x43a8f2
push 0x13
call fcn.00401653
mov ecx, 0x4325fc
call fcn.00416c66
jmp 0x402dfa
push esi
lea ecx, [esp + 0x8c]
call fcn.0040b5ac
push dword [0x44f24c]
lea ecx, [esp + 0x60]
push dword [0x44f248]
call fcn.00401e50
push dword [0x44f25c]
lea ecx, [esp + 0x60]
push dword [0x44f258]
call fcn.00401e50
push dword [0x44f254]
lea ecx, [esp + 0x60]
push dword [0x44f250]
call fcn.00401e50
jmp 0x402dfa
mov esi, 0x44e244
push esi
call fcn.004044fd
cmp eax, 0xffffffff
je 0x402d93
xor edi, edi
cmp eax, edi
je 0x402d87
cmp eax, 1
jne 0x402da3
mov eax, dword [0x43774c]
cmp eax, 2
je 0x402dfa
cmp byte [0x437770], 0
jne 0x402dfa
cmp byte [0x43776f], 0
jne 0x402dfa
cmp eax, edi
je 0x402d30
cmp eax, 3
jne 0x402da3
movzx eax, word [0x44e198]
movzx ecx, word [0x44e196]
shl eax, 0x10
add eax, ecx
push eax
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
call fcn.0040b83b
push edi
lea eax, [esp + 0x48]
push eax
push dword [0x43e114]
push dword [0x43e110]
push 0x800
push esi
push 0x432620
call fcn.0040becf
cmp eax, 6
je 0x402e0e
cmp eax, 1
je 0x402dfa
jmp 0x402da3
mov eax, dword [0x43774c]
cmp eax, 2
je 0x402dfa
jmp 0x402d27
cmp byte [0x43776f], 0
jne 0x402dfa
jmp 0x402da3
mov esi, 0x44e244
mov eax, dword [0x43e12c]
test byte [eax + 0x40], 1
je 0x402de7
call fcn.0040bbe0
test eax, eax
je 0x402de7
cmp eax, 9
je 0x402e7d
cmp eax, 1
jne 0x402dd3
push esi
push 6
call fcn.0040162a
inc dword [esp + 0x28]
jmp 0x402dfa
cmp eax, dword [esp + 0x10]
jle 0x402ddd
mov dword [esp + 0x10], eax
push esi
push 6
call fcn.0040162a
jmp 0x402dfa
call fcn.00401ead
test eax, eax
je 0x402dfa
cmp eax, dword [esp + 0x10]
jle 0x402dfa
mov dword [esp + 0x10], eax
inc dword [esp + 0x14]
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x1c]
jl 0x4026df
jmp 0x402e16
mov dword [esp + 0x18], 1
mov ecx, dword [0x44e158]
mov eax, dword [ecx]
push 0
push dword [esp + 0x54]
push dword [esp + 0x54]
call dword [eax + 0xc]
mov ecx, dword [0x44e158]
mov eax, dword [ecx]
call dword [eax + 0x10]
push 0x2000
push dword [0x44e138]
mov dword [0x44e178], eax
mov dword [0x44e17c], edx
call fcn.004041c7
mov eax, dword [esp + 0x6c]
inc dword [esp + 0x2c]
cmp dword [esp + 0x18], 0
mov dword [0x44e13c], eax
mov eax, dword [esp + 0x54]
mov dword [0x44e140], eax
mov eax, dword [esp + 0x58]
mov dword [0x44e144], eax
je 0x402289
jmp 0x402e84
push 2
call fcn.004015d8
mov ebx, dword [esp + 0x10]
mov edi, 0x43a8f2
push 0x800
lea eax, [esp + 0x2444]
push eax
lea ecx, [esp + 0x90]
call fcn.0040b63d
test al, al
je 0x402f16
mov esi, dword [esp + 0x5c]
add esi, 0x10
mov eax, dword [esi - 0x10]
mov dword [esp + 0x44], eax
mov eax, dword [esi - 0xc]
mov dword [esp + 0x48], eax
mov eax, dword [esi - 8]
mov dword [esp + 0x4c], eax
mov eax, dword [esi - 4]
mov dword [esp + 0x50], eax
mov eax, dword [esi]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 4]
mov dword [esp + 0x58], eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x244c]
push eax
call fcn.0040395a
push 0x800
lea eax, [esp + 0x2444]
push eax
lea ecx, [esp + 0x90]
add esi, 0x18
call fcn.0040b63d
test al, al
jne 0x402eb1
call fcn.0040bec4
test al, al
jne 0x402f3e
cmp dword [esp + 0x30], 0
je 0x402f3e
cmp byte [0x44f2cc], al
jne 0x402f3e
push edi
mov ecx, 0x4325fc
call fcn.00401789
test ebx, ebx
jne 0x402f3e
inc ebx
mov esi, dword [esp + 0x20]
movzx ebp, word [esp + 0x28]
inc esi
cmp esi, ebp
jne 0x402f67
cmp word [0x4398d2], 0x49
je 0x402f67
cmp dword [0x44f260], 0
jne 0x402f67
push edi
push 0x43
call fcn.0040162a
xor eax, eax
cmp esi, eax
jne 0x402f84
cmp ebx, 1
jg 0x402f84
xor cx, cx
cmp cx, word [esp + 0x24]
sbb ebx, ebx
and ebx, 0x46
add ebx, 0xb
jmp 0x402fb0
cmp esi, ebp
jne 0x402f91
cmp ebx, 1
jg 0x402f91
push 0x52
jmp 0x402f9f
cmp word [esp + 0x24], ax
jbe 0x402fa2
cmp ebx, 1
jg 0x402fa2
push 0x51
pop ebx
jmp 0x402fb0
cmp word [esp + 0x28], ax
jbe 0x402fb0
cmp ebx, eax
jne 0x402fb0
xor ebx, ebx
inc ebx
cmp dword [esp + 0x88], eax
je 0x402fc6
push dword [esp + 0x88]
call fcn.0040d90b
pop ecx
cmp dword [esp + 0x5c], 0
je 0x402fd7
push dword [esp + 0x5c]
call fcn.0040d90b
pop ecx
cmp dword [esp + 0xe4], 0
je 0x402fee
push dword [esp + 0xe4]
call fcn.0040d90b
pop ecx
cmp dword [esp + 0x78], 0
je 0x402fff
push dword [esp + 0x78]
call fcn.0040d90b
pop ecx
mov ecx, dword [esp + 0x6440]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
mov dword fs:[0], ecx
leave
ret