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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x4c
mov edx, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
test edx, edx
je 0x421953
mov ebx, dword [edx + 0xe0]
test ebx, ebx
je 0x421953
mov ecx, dword [ebx]
test ecx, ecx
je 0x42195d
xor ecx, ecx
test eax, eax
je 0x421798
mov edi, dword [ebx + 0x80]
mov ebp, dword [ebx + 0x7c]
xor ecx, ecx
mov edx, dword [esp + 0x64]
mov dword [ebx + 0x14], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x3c], edi
mov ebp, dword [ebx + 8]
mov edi, dword [ebx + 0x78]
mov dword [ebx + 0x10], edx
mov dword [esp + 0x28], edi
mov esi, ebp
xor edi, edi
add esi, dword [esp + 0x28]
adc edi, dword [esp + 0x2c]
cmp ecx, dword [ebx + 0x84]
jae 0x4217a2
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
cmp ecx, edi
jae 0x421917
lea edi, [ebx + 4]
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], edi
nop
test eax, eax
je 0x421794
mov esi, dword [ebx + 8]
test esi, esi
jne 0x4217e0
mov eax, dword [ebx + 0x7c]
mov esi, dword [ebx + 0x78]
mov edi, eax
or edi, esi
je 0x421820
cmp eax, 0
ja 0x421690
cmp esi, 0x3fff
jbe 0x421695
mov esi, 0x4000
mov dword [esp + 0x10], 0
mov eax, dword [ebx + 0xc0]
add eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0xc4]
adc edx, dword [ebx + 0x44]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebx + 0xb4]
mov dword [esp + 4], eax
lea eax, [ebx + 0x88]
mov dword [esp], eax
call fcn.00422740
test eax, eax
jne 0x42193d
mov dword [esp + 0xc], esi
mov eax, dword [ebx]
mov dword [esp + 8], eax
mov eax, dword [ebx + 0xb4]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0xa4]
mov dword [esp], eax
call dword [ebx + 0x8c]
cmp eax, esi
jne 0x42193d
xor edx, edx
add dword [ebx + 0x40], esi
mov eax, dword [ebx]
adc dword [ebx + 0x44], edx
mov dword [ebx + 8], esi
sub dword [ebx + 0x78], esi
sbb dword [ebx + 0x7c], edx
mov edx, dword [ebx + 0xb8]
mov dword [ebx + 4], eax
test edx, edx
je 0x4218f0
mov ecx, dword [ebx + 0xc8]
test ecx, ecx
je 0x421840
mov esi, dword [ebx + 8]
test esi, esi
jne 0x4218f0
mov eax, dword [ebx + 0x7c]
or eax, dword [ebx + 0x78]
je 0x421794
xor ebp, ebp
add dword [ebx + 0x68], esi
adc dword [ebx + 0x6c], ebp
mov dword [esp + 8], esi
mov eax, dword [ebx + 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x70]
mov dword [esp], eax
call fcn.00422cf0
mov dword [ebx + 0x70], eax
mov eax, dword [ebx + 0x14]
sub dword [ebx + 0x80], esi
sbb dword [ebx + 0x84], ebp
sub eax, esi
sub dword [ebx + 8], esi
add dword [ebx + 0x10], esi
add dword [ebx + 4], esi
add dword [ebx + 0x18], esi
mov dword [ebx + 0x14], eax
add dword [esp + 0x28], esi
test eax, eax
jne 0x421668
mov ecx, dword [esp + 0x28]
add esp, 0x4c
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
jbe 0x4218f8
mov edx, dword [ebx + 0xc8]
test edx, edx
je 0x42190b
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
cmp ecx, edi
ja 0x42192f
jb 0x421650
cmp edx, esi
ja 0x42192f
jmp 0x421650
mov edx, dword [ebx + 0xb8]
test edx, edx
jne 0x421726
cmp esi, eax
cmova esi, eax
test esi, esi
je 0x421747
xor eax, eax
lea esi, [esi]
mov edx, dword [ebx + 4]
movzx ecx, byte [edx + eax]
mov edx, dword [ebx + 0x10]
mov byte [edx + eax], cl
add eax, 1
cmp esi, eax
jne 0x421800
jmp 0x421747
mov edx, dword [ebx + 0xb8]
test edx, edx
jne 0x421726
mov ecx, dword [esp + 0x28]
jmp 0x421798
cmp edx, 0xc
je 0x4218e1
mov eax, dword [esp + 0x3c]
mov edi, dword [ebx + 0x18]
mov ebp, dword [ebx + 0x10]
mov dword [esp + 4], 2
mov dword [esp + 0x34], 0
mov dword [esp], eax
mov dword [esp + 0x30], edi
call fcn.004234c0
test eax, eax
mov esi, eax
js 0x421882
mov eax, dword [ebx + 0x1c]
test eax, eax
mov eax, 0xfffffffd
cmovne esi, eax
mov eax, dword [ebx + 0x18]
xor edx, edx
sub eax, dword [esp + 0x30]
sbb edx, dword [esp + 0x34]
add dword [ebx + 0x68], eax
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x18]
mov ecx, edx
adc dword [ebx + 0x6c], ecx
mov dword [esp + 4], ebp
mov dword [esp + 0x34], ecx
sub eax, edi
mov edi, eax
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x70]
mov dword [esp], eax
call fcn.00422cf0
mov edx, dword [esp + 0x30]
sub dword [ebx + 0x80], edx
mov ecx, dword [esp + 0x34]
sbb dword [ebx + 0x84], ecx
add dword [esp + 0x28], edi
cmp esi, 1
mov dword [ebx + 0x70], eax
je 0x421794
test esi, esi
jne 0x42194c
mov eax, dword [ebx + 0x14]
jmp 0x421660
mov eax, dword [ebx + 0x14]
jmp 0x4217ee
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x30], ecx
jbe 0x421640
jmp 0x4217a8
mov eax, dword [esp + 0x3c]
mov dword [ebx + 0x14], eax
jmp 0x421650
ja 0x421921
cmp edx, esi
jbe 0x421650
mov esi, dword [ebx + 0xc8]
test esi, esi
je 0x421650
mov eax, dword [esp + 0x28]
add eax, ebp
mov dword [ebx + 0x14], eax
jmp 0x421650
add esp, 0x4c
mov ecx, 0xffffffff
pop ebx
mov eax, ecx
pop esi
pop edi
pop ebp
ret
mov ecx, esi
jmp 0x421798
mov ecx, 0xffffff9a
jmp 0x421798
mov ecx, 0xffffff9c
jmp 0x421798