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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x40], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x3c], eax
sub eax, 6
and eax, 0xfffffffb
jne 0x421d60
cmp byte [ebx + 0x6d], 0
je 0x421fc0
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [ebp - 0x3c]
cmp eax, 0xa
je 0x421fa3
cmp eax, 8
je 0x421f52
mov ecx, dword [ebx + 0x98]
test ecx, ecx
jle 0x421da6
cmp eax, 3
sete dl
cmp eax, 0xd
sete al
or dl, al
je 0x421f6d
cmp ecx, 1
jne 0x421f6d
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.00424780
cmp byte [ebx + 0x3d], 0
je 0x421db6
cmp dword [esi + 0x20], 6
je 0x421ff0
mov eax, dword [esi + 0x24]
test eax, eax
je 0x421e60
cmp eax, dword [ebx + 0x68]
je 0x421e60
mov ecx, dword [ebx + 0x84]
mov dword [esp], eax
mov dword [esp + 4], ecx
call dword [ebx + pe_nt_image_headers32]
test eax, eax
je 0x421d4d
mov eax, dword [ebx + 0x4c]
test eax, eax
jle 0x4220e3
lea edx, [eax - 1]
mov dword [ebp + 0xc], esi
mov esi, edx
jmp 0x421e20
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x422110
mov edx, dword [ebp + 0xc]
cmp ecx, dword [edx + 0x24]
je 0x422110
sub esi, 1
js 0x4220e0
mov edx, dword [ebp - 0x40]
lea eax, [esi + esi*2]
lea edi, [eax*4]
mov dword [esp + 8], edx
mov ecx, dword [ebx + 0x48]
mov eax, dword [ecx + eax*4]
mov dword [esp + 4], eax
mov eax, dword [0x4c7b98]
mov dword [esp], eax
call fcn.00425ac0
test eax, eax
js 0x421e17
add edi, dword [ebx + 0x48]
mov eax, dword [edi + 8]
cmp eax, 0xf
jne 0x421e00
mov esi, dword [edi + 4]
jmp 0x421e17
mov eax, dword [esi + 0x20]
cmp dword [ebp - 0x3c], 6
je 0x4220c3
add dword [ebx + 0x98], 1
cmp eax, 0xd
je 0x421f00
cmp eax, 3
je 0x421f00
add dword [ebx + eax*4 + 4], 1
cmp byte [ebx + 0x61], 0
mov edi, dword [esi]
jne 0x422010
lea eax, [esi + 0x14]
mov dword [esi + 0x1c], 0
mov dword [esi + 0xc], eax
lea eax, [esi + 0x1c]
mov dword [esi + 0x10], eax
mov dword [esp + 4], esi
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004232a0
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [ebx + 0x74]
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.004245a0
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [ebx + 0x78]
mov eax, dword [esi + 0x20]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00421b40
mov dword [esi], edi
mov dword [esi + 0x1c], 0
mov eax, 1
sub dword [ebx + 0x98], 1
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov ecx, dword [ebx + 0x14]
test ecx, ecx
jle 0x422000
cmp byte [ebx + 0x62], 0
je 0x422119
mov ecx, dword [ebx + 0x7c]
test ecx, ecx
je 0x421f31
mov eax, dword [esi + 4]
mov dword [esp + 8], eax
mov eax, dword [esi]
mov dword [esp], ebx
mov dword [esp + 4], eax
call ecx
mov eax, dword [esi + 0x20]
cmp eax, 4
jne 0x421e82
cmp dword [ebp - 0x3c], 6
jne 0x421e82
add dword [ebx + 0x34], 1
mov eax, 4
jmp 0x421e87
cmp byte [ebx + 0x9c], 0
jne 0x421d4d
mov ecx, dword [ebx + 0x98]
test ecx, ecx
jle 0x421da6
cmp ecx, 2
jle 0x42215d
mov eax, dword [sym.imp.msvcrt.dll__iob]
mov dword [esp + 4], str.Internal_compiler_error:_Error_reporting_routines_re_entered._n
add eax, 0x40
mov dword [esp], eax
call fcn.004217d0
mov dword [esp + 4], 3
mov dword [esp], ebx
call fcn.00421b40
call sub.msvcrt.dll_abort
cmp byte [ebx + 0x64], 1
sbb eax, eax
and eax, 2
add eax, 4
mov dword [ebp - 0x3c], eax
mov dword [esi + 0x20], eax
jmp 0x421d75
mov eax, dword [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [0x4c7b98]
mov dword [esp], eax
call fcn.004257f0
test eax, eax
je 0x421fe2
cmp byte [ebx + 0x6e], 0
je 0x421d4d
mov eax, dword [esi + 0x20]
jmp 0x421d63
mov dword [esi + 0x20], 4
jmp 0x421db6
mov edx, dword [ebx + 0x18]
test edx, edx
jg 0x421f0b
jmp 0x421f15
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x24]
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [ebx + 0x88]
test eax, eax
je 0x421e93
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x4b58c0
mov dword [esp + 0xc], eax
mov dword [ebp - 0x3c], eax
mov dword [esp + 8], 0x4b58c2
mov dword [esp + 4], 0x4b58c4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00444540
add eax, 0x1f
shr eax, 4
shl eax, 4
call fcn.0046a050
mov edx, dword [ebp - 0x3c]
sub esp, eax
lea eax, [esp + 0x27]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0x4b58c0
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0x4b58c2
and eax, 0xfffffff0
mov dword [esp + 4], 0x4b58c4
mov dword [0x4c8a98], eax
mov eax, dword [esi]
mov dword [esp], eax
call fcn.004445e0
mov edx, dword [ebp - 0x3c]
mov dword [esi], eax
mov dword [esp], edx
call sub.msvcrt.dll_free
jmp 0x421e93
cmp eax, 4
jne 0x421e6d
mov byte [ebx + 0x3c], 1
add dword [ebx + 0x98], 1
jmp 0x421f44
mov esi, dword [ebp + 0xc]
mov ecx, dword [esi + 0x24]
mov eax, dword [ebx + 0x44]
mov eax, dword [eax + ecx*4]
test eax, eax
je 0x422101
mov dword [esi + 0x20], eax
cmp eax, 1
jne 0x421e63
jmp 0x421d4d
mov eax, dword [esi + 0x20]
jmp 0x4220f3
test eax, eax
mov esi, dword [ebp + 0xc]
je 0x4220e3
jmp 0x4220f0
mov edx, dword [esi + 0x14]
lea eax, [ebp - 0x2c]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00420660
mov eax, dword [ebp - 0x28]
mov dword [esp + 4], str._s:_d:_confused_by_earlier_errors__bailing_out_n
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x2c]
mov dword [esp + 8], eax
mov eax, dword [sym.imp.msvcrt.dll__iob]
add eax, 0x40
mov dword [esp], eax
call fcn.004217d0
mov dword [esp], 4
call sub.msvcrt.dll_exit
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.00424780
jmp 0x421f76