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

Disassembly:
push esi
push edi
push ebp
sub esp, 0x10
mov ebp, dword [esp + 0x28]
mov esi, eax
mov byte [esp + 0xc], dl
mov byte [esp + 8], bl
mov byte [esp + 4], cl
mov eax, dword [esp + 0x24]
cmp byte [eax + 2], 4
jne 0x42172a
mov eax, dword [esi + 0x78]
mov ax, word [eax + 0x38]
mov byte [esp + 2], 0
mov word [esp], ax
test byte [esi + 0x14], 8
je 0x421749
mov eax, dword [esi]
mov edx, dword [eax]
mov eax, 0x18
call dword [edx + 8]
mov ecx, eax
test eax, eax
je 0x421731
mov ebx, 0x18
xor edx, edx
call fcn.0040f620
mov al, byte [esp + 0xc]
mov byte [ecx + 4], al
mov al, byte [esp + 8]
mov byte [ecx + 5], al
mov al, byte [esp + 4]
mov byte [ecx + 6], al
mov eax, dword [esp + 0x20]
mov dword [ecx + 8], eax
mov eax, dword [esp]
mov dword [ecx + 0xc], eax
mov eax, dword [ebp]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0x14], eax
mov eax, dword [esi + 0x7c]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x421735
mov dword [edi], ecx
mov eax, dword [esi + 0x7c]
mov dword [eax + 0x14], ecx
mov al, 2
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
mov eax, dword [eax]
mov dword [esp], eax
jmp 0x4216b6
xor al, al
jmp 0x421721
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x7c]
mov dword [eax + 0x14], ecx
mov al, 2
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
mov eax, dword [esi]
mov edx, dword [eax]
mov eax, 0x18
call dword [edx + 8]
mov edi, eax
mov ecx, eax
test eax, eax
jne 0x421768
xor al, al
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
mov ebx, 0x18
xor edx, edx
call fcn.0040f620
mov al, byte [esp + 4]
cmp al, 4
jae 0x42182e
cmp al, 1
jae 0x4218ad
test al, al
jne 0x421884
cmp byte [esp + 8], 0
je 0x4218d3
mov byte [edi + 0x14], 0x28
mov eax, dword [esi + 0x78]
test eax, eax
je 0x421884
mov edx, dword [esp + 0x20]
mov eax, dword [eax + 0x34]
add edx, eax
mov dword [ecx + 4], edx
mov eax, dword [esi + 0x78]
mov dword [ecx], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx + 0xc], eax
mov al, byte [ebp + 2]
cmp al, 3
ja case.default.0x4217d0
movzx eax, al
jmp dword [eax*4 + 0x421658]
mov eax, esi
movzx edx, word [ebp]
call fcn.00420630
test eax, eax
je 0x421884
mov eax, dword [eax + 0x3c]
mov dword [ecx + 8], eax
mov dl, byte [esp + 2]
cmp dl, 5
ja case.0x4217fc.4
movzx eax, dl
jmp dword [eax*4 + 0x421668]
movzx edx, word [esp]
mov eax, esi
call fcn.00420630
test eax, eax
je case.default.0x4217d0
mov eax, dword [eax + 0x3c]
mov dword [ecx + 0x10], eax
mov edx, ecx
mov eax, esi
call fcn.00420a00
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
ja 0x421844
cmp byte [esp + 8], 0
je 0x4218f7
mov byte [edi + 0x14], 0x2c
jmp 0x42179f
cmp al, 9
jae 0x421866
cmp al, 6
jne 0x42188f
test byte [esi + 0x14], 0x10
je 0x421884
cmp byte [esp + 8], 0
je 0x421922
mov byte [ecx + 0x14], 0x2e
jmp 0x42179f
ja 0x42187c
cmp byte [esp + 8], 0
je 0x421919
mov byte [ecx + 0x14], 3
jmp 0x42179f
cmp al, 0xd
je 0x421868
cmp al, 0xb
je 0x421852
mov al, 1
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
cmp al, 5
jne 0x421884
test byte [esi + 0x14], 0x10
je 0x421909
cmp byte [esp + 8], 0
je 0x421900
mov byte [edi + 0x14], 3
jmp 0x42179f
ja 0x4218bf
cmp byte [esp + 8], 0
je 0x4218dc
mov byte [edi + 0x14], 2
jmp 0x42179f
cmp al, 3
jne 0x4218e5
cmp byte [esp + 8], 0
je 0x4218ee
mov byte [edi + 0x14], 0x2a
jmp 0x42179f
mov byte [edi + 0x14], 0x29
jmp 0x42179f
mov byte [edi + 0x14], 0xc
jmp 0x42179f
mov byte [edi + 0x14], 0xf
jmp 0x42179f
mov byte [edi + 0x14], 0x2b
jmp 0x42179f
mov byte [edi + 0x14], 0x2d
jmp 0x42179f
mov byte [edi + 0x14], 0x15
jmp 0x42179f
cmp byte [esp + 8], 0
je 0x4218dc
mov byte [edi + 0x14], 2
jmp 0x42179f
mov byte [ecx + 0x14], 0x15
jmp 0x42179f
mov byte [ecx + 0x14], 0x2f
jmp 0x42179f
mov eax, esi
movzx edx, word [ebp]
call fcn.004205b0
test eax, eax
je 0x421884
mov eax, dword [eax + 0x14]
jmp 0x4217ed
mov eax, esi
movzx edx, word [ebp]
call fcn.00420550
mov dword [ecx + 8], eax
test eax, eax
jne case.0x4217d0.3
mov al, 1
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
movzx edx, word [esp]
mov eax, esi
call fcn.004205b0
test eax, eax
je case.default.0x4217d0
mov eax, dword [eax + 0x14]
jmp 0x421819
movzx edx, word [esp]
mov eax, esi
call fcn.00420550
mov dword [ecx + 0x10], eax
test eax, eax
jne case.0x4217fc.4
mov al, 1
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
mov dword [ecx + 0x10], 0
mov edx, ecx
mov eax, esi
call fcn.00420a00
add esp, 0x10
pop ebp
pop edi
pop esi
ret 0x10
mov eax, dword [ecx + 8]
jmp 0x421819