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

Disassembly:
push ebp
push edi
mov edi, ecx
push esi
push ebx
mov ebx, edx
sub esp, 0x5c
mov esi, dword [ecx]
mov eax, dword [esp + 0x70]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], eax
test esi, esi
je 0x421379
mov eax, dword [esi - 8]
lea edx, [eax + 0x10]
xor eax, edx
test edx, eax
js 0x4216a8
mov eax, dword [esi]
mov dword [esi - 8], edx
cmp word [eax + 0xa], 1
jle 0x4216ba
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 0x6d65b500
jne 0x4216ba
cmp ebx, 0x69434350
je 0x421bce
jg 0x421451
cmp ebx, 0x6348524d
je 0x421b90
jg 0x4214ee
cmp ebx, 0x504c5445
je 0x421b52
jle 0x42149c
cmp ebx, 0x6163544c
je 0x4217dc
cmp ebx, 0x624b4744
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x28
call fcn.0040a600
mov dword [eax], 0x448484
cmp byte [edi], 0
mov edx, eax
jne 0x421495
nop
lea ecx, [esp + 0x4c]
call fcn.0041fa40
cmp byte [edi], 0
mov ebp, dword [esp + 0x4c]
jne 0x4216c8
test ebp, ebp
je 0x4216c8
mov eax, dword [esp + 0x78]
mov edi, dword [esp + 0x28]
mov dword [ebp + 8], ebx
lea ecx, [ebp + 0x10]
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [ebp + 4], edi
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0040d660
mov dword [ebp + 0x18], 0
sub esp, 8
jmp 0x4216c8
cmp ebx, 0x73524742
je 0x42193c
jle 0x4215a0
cmp ebx, 0x74524e53
je 0x4218fe
jle 0x42154a
cmp ebx, 0x7a545874
jne 0x42197a
cmp byte [esi + 5], 0
jne 0x421718
cmp byte [esi + 6], 0
jne 0x4216e0
xor ebp, ebp
jmp 0x4216c8
cmp ebx, 0x49444154
je 0x4219de
cmp ebx, 0x49484452
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x38
call fcn.0040a600
mov dword [eax], 0x4484f4
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp ebx, 0x67414d41
je 0x4219a0
jle 0x4215fc
cmp ebx, 0x68495354
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x24
call fcn.0040a600
mov dword [eax], 0x448334
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp ebx, 0x74455874
je 0x421794
cmp ebx, 0x74494d45
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x34
call fcn.0040a600
mov dword [eax], 0x448468
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp ebx, 0x73424954
je 0x4218c0
jle 0x42164f
cmp ebx, 0x73504c54
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x30
call fcn.0040a600
mov dword [eax], 0x448350
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp ebx, 0x6663544c
je 0x421756
cmp ebx, 0x66644154
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x24
call fcn.0040a600
mov dword [eax], 0x4482c4
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp ebx, 0x69545874
je 0x421878
cmp ebx, 0x70485973
jne 0x42197a
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x28
call fcn.0040a600
mov dword [eax], 0x44844c
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
call fcn.004083d0
mov eax, dword [esi]
cmp word [eax + 0xa], 1
jg 0x421369
call fcn.0040d230
xor ebp, ebp
xor esi, esi
lea esi, [esi]
nop
mov ecx, esi
call fcn.0041f6c0
add esp, 0x5c
mov eax, ebp
pop ebx
pop esi
pop edi
pop ebp
ret 0xc
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
jne 0x421495
mov edx, 4
mov ecx, 0x1c
call fcn.0040a600
mov dword [eax], 0x448414
mov ebp, eax
jmp 0x42141e
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x2c
call fcn.0040a600
mov dword [eax], 0x4483f8
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x3c
call fcn.0040a600
mov dword [eax], 0x4482e0
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp byte [esi + 5], 0
je 0x42148b
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x2c
call fcn.0040a600
mov dword [eax], 0x448430
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov ebp, dword [edi + 4]
mov dword [esp], 0x4481cc
call fcn.00438340
mov dword [esp + 0x30], eax
movzx edx, byte [eax]
test ebp, ebp
jle 0x421cb0
mov eax, edx
mov dword [esp + 0x3c], edi
mov ecx, dword [edi + 8]
xor eax, 1
mov byte [esp + 0x38], dl
mov byte [esp + 0x37], al
xor eax, eax
movzx edi, byte [esp + 0x37]
jmp 0x421831
mov edx, edi
test dl, dl
je 0x42183e
add eax, 1
cmp ebp, eax
je 0x421c50
mov edx, dword [ecx + eax*4 + 4]
cmp dword [edx + 8], 0x49444154
jne 0x421820
movzx edx, byte [esp + 0x38]
xor ebp, ebp
test dl, dl
jne 0x4216c8
mov edx, 4
mov ecx, 0x24
call fcn.0040a600
mov edi, dword [esp + 0x30]
mov dword [eax], 0x4482fc
mov edx, eax
cmp byte [edi], 0
je 0x421400
xor ebp, ebp
jmp 0x4216c8
cmp byte [esi + 5], 0
je 0x42148b
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x3c
call fcn.0040a600
mov dword [eax], 0x4483dc
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x1c
call fcn.0040a600
mov dword [eax], 0x448318
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x28
call fcn.0040a600
mov dword [eax], 0x4484a0
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x20
call fcn.0040a600
mov dword [eax], 0x44836c
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
xor ebp, ebp
cmp byte [esi + 6], 0
je 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
je 0x4216f5
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x20
call fcn.0040a600
mov dword [eax], 0x4483c0
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov ebp, dword [edi + 0x1c]
mov dword [esp], 0x4481cc
call fcn.00438340
mov dword [esp + 0x30], eax
movzx edx, byte [eax]
test ebp, ebp
jle 0x421ca4
mov eax, edx
mov dword [esp + 0x38], ebx
mov ecx, dword [edi + 0x20]
xor eax, 1
mov byte [esp + 0x3c], dl
mov byte [esp + 0x37], al
xor eax, eax
movzx ebx, byte [esp + 0x37]
jmp 0x421a2f
test bl, bl
je 0x421a3c
add eax, 1
cmp ebp, eax
je 0x421c6c
mov edx, dword [ecx + eax*4 + 4]
cmp dword [edx + 8], 0x6663544c
jne 0x421a20
movzx edx, byte [esp + 0x3c]
mov ebx, dword [esp + 0x38]
test dl, dl
jne 0x421495
mov ecx, dword [edi + 4]
mov byte [edi + 0x24], 1
test ecx, ecx
jle 0x421c10
mov ebp, dword [edi + 8]
xor eax, eax
jmp 0x421a73
add eax, 1
cmp ecx, eax
jle 0x421c10
mov edx, dword [ebp + eax*4 + 4]
cmp dword [edx + 8], 0x49444154
jne 0x421a68
mov edx, 0x49444154
mov ecx, edi
call fcn.0041ffa0
mov ebx, eax
mov eax, dword [esp + 0x30]
cmp byte [eax], 0
jne 0x421c96
test ebx, ebx
je 0x421abc
mov eax, dword [ebx]
cmp word [eax + 0xa], 1
jle 0x421c8a
mov eax, dword [eax + 0xc]
cmp dword [eax + 8], 0x7e5a0f00
jne 0x421c8a
mov edi, dword [esp + 0x28]
lea ecx, [ebx + 0x10]
mov edx, edi
call fcn.00409e00
test edi, edi
jle 0x421b1d
lea eax, [edi + 1]
xor edi, eax
test eax, edi
js 0x421c80
test eax, eax
js 0x421cbb
mov ecx, dword [ebx + 0x14]
mov edx, dword [ebx + 0x10]
mov dword [esp + 8], eax
lea edx, [ecx + edx + 4]
mov ecx, dword [esp + 0x2c]
mov dword [esp], edx
add ecx, 4
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 0x10]
mov edi, dword [esp + 0x28]
lea edx, [eax + edi]
xor eax, edx
xor edi, edx
test eax, edi
js 0x421c80
mov dword [ebx + 0x10], edx
mov edi, dword [esp + 0x30]
cmp byte [edi], 0
jne 0x421c96
mov edx, ebx
lea ecx, [esp + 0x4c]
call fcn.0041fa40
cmp byte [edi], 0
mov ebp, dword [esp + 0x4c]
jne 0x421c98
mov ecx, esi
call fcn.0041f6c0
mov ebp, dword [esp + 0x4c]
jmp 0x4216cf
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x24
call fcn.0040a600
mov dword [eax], 0x4484d8
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x3c
call fcn.0040a600
mov dword [eax], 0x4483a4
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov dword [esp], 0x4481cc
call fcn.00438340
cmp byte [eax], 0
mov edi, eax
jne 0x421495
mov edx, 4
mov ecx, 0x2c
call fcn.0040a600
mov dword [eax], 0x448388
cmp byte [edi], 0
mov edx, eax
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov eax, dword [esp + 0x30]
cmp byte [eax], 0
jne 0x421495
mov edx, 4
mov ecx, 0x24
call fcn.0040a600
mov edi, dword [esp + 0x30]
mov dword [eax], 0x4484bc
mov edx, eax
cmp byte [edi], 0
je 0x421400
xor ebp, ebp
jmp 0x4216c8
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x30]
mov byte [edi + 0x25], 1
cmp byte [eax], 0
je 0x42184d
xor ebp, ebp
jmp 0x4216c8
mov ebx, dword [esp + 0x38]
mov ecx, dword [edi + 4]
test ecx, ecx
jg 0x421a5c
jmp 0x421c1d
call fcn.004083d0
jmp 0x421b1d
call fcn.0040d230
xor ebp, ebp
jmp 0x4216c8
xor ebp, ebp
mov eax, dword [esp + 0x30]
mov byte [eax], 1
jmp 0x4216c8
test dl, dl
je 0x421c70
xor ebp, ebp
jmp 0x4216c8
test dl, dl
je 0x421c54
xor ebp, ebp
jmp 0x4216c8
mov dword [esp + 0x10], 0x7fffffff
mov dword [esp + 0x14], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0x80000000
mov dword [esp + 4], 0xffffffff
call fcn.00408b10
jmp 0x421b1d