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

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x64
mov ecx, dword [eax + 4]
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp ecx, edi
jne 0x43c847
mov eax, dword [0x9eec04]
mov dword [eax + 0x174], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret
mov esi, dword [eax]
mov ebx, dword [0x9eec0c]
add esi, ebx
mov dword [esp + 0x18], esi
mov ecx, dword [esi]
push ecx
call dword [0xc375b4]
mov dword [esi], eax
mov edx, dword [0x9eec04]
push 0x9eebe0
mov dword [edx + 0x170], eax
mov eax, dword [esi]
shl eax, 2
push eax
call fcn.00487d30
mov ecx, dword [0x9eec04]
add esp, 0xc
mov dword [esp + 0x14], edi
mov dword [ecx + 0x174], eax
mov eax, dword [esi]
cmp eax, edi
jle 0x43d0a0
lea edi, [esi + 4]
mov dword [esp + 0x20], edi
mov edx, dword [edi]
push edx
call dword [0xc375b4]
add esp, 4
cmp eax, 0xffffffff
mov dword [edi], eax
je 0x43ce0b
mov ecx, dword [esp + 0x18]
mov edx, dword [eax + ecx + 0x10]
lea ebx, [eax + ecx]
push edx
call dword [0xc375b4]
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
push eax
call dword [0xc375b4]
lea esi, [ebx + 0x18]
add esp, 8
mov dword [ebx + 0x14], eax
mov edi, esi
mov ebp, 4
mov ecx, dword [edi]
push ecx
call dword [0xc375b4]
mov dword [edi], eax
add esp, 4
add edi, 4
dec ebp
jne 0x43c8e6
test byte [ebx + 0x10], 0xf
jne 0x43c906
test byte [ebx + 0x14], 0xf
je 0x43c914
push ebx
push 0x4a4a00
call fcn.0047c340
add esp, 8
cmp dword [esi], 0
mov eax, dword [ebx + 0x10]
jne 0x43c9a7
imul eax, dword [ebx + 0x14]
shr eax, 6
mov ecx, eax
push ebx
shl ecx, 4
add ecx, eax
lea edi, [ecx + ecx*4]
lea edx, [edi + 0x44]
push edx
call fcn.00487d30
mov edx, eax
add esp, 8
mov byte [edx + 0x18], 1
mov eax, dword [0x9eec04]
mov ecx, dword [eax + 0x174]
mov eax, dword [esp + 0x14]
mov dword [ecx + eax*4], edx
mov ecx, ebx
mov eax, edx
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov ecx, dword [ecx + 0xc]
mov dword [eax + 0xc], ecx
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov ecx, dword [ebx + 0x14]
xor eax, eax
mov dword [edx + 0x14], ecx
mov dword [edx + 0x30], eax
mov ecx, edi
mov dword [edx + 0x34], eax
lea edi, [edx + 0x44]
mov dword [edx + 0x38], eax
mov dword [edx + 0x3c], eax
mov edx, ecx
mov eax, 0x7070707
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x43ce07
imul eax, dword [ebx + 0x14]
shr eax, 6
mov ecx, eax
push 0x9eebe0
shl ecx, 4
add ecx, eax
lea edi, [ecx + ecx*4]
lea eax, [edi + 0x44]
push eax
call fcn.00487d30
mov ecx, dword [0x9eec04]
mov ebp, eax
mov eax, dword [esp + 0x1c]
add esp, 8
mov edx, dword [ecx + 0x174]
mov ecx, ebx
mov dword [edx + eax*4], ebp
mov eax, dword [ecx]
mov edx, ebp
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov ecx, dword [ecx + 0xc]
mov dword [edx + 0xc], ecx
mov edx, dword [ebx + 0x10]
mov dword [ebp + 0x10], edx
mov eax, dword [ebx + 0x14]
mov dword [ebp + 0x14], eax
lea ecx, [ebp + 0x30]
mov eax, esi
mov edx, 4
mov esi, dword [eax]
add eax, 4
add esi, 0x1c
mov dword [ecx], esi
add ecx, 4
dec edx
jne 0x43ca0e
mov ecx, dword [0x9eec04]
cmp dword [ecx + 0x188], 3
jne 0x43cc95
mov eax, dword [0xc3f008]
lea esi, [ebp + 0x44]
cmp eax, 2
push ebx
jne 0x43cb6c
call fcn.00485c70
mov edx, esi
mov edi, eax
sub edx, ebp
add esp, 4
mov dword [ebp + 0x30], edx
mov eax, dword [ebx + 0x10]
imul eax, dword [ebx + 0x14]
test eax, eax
mov dword [esp + 0x78], 0
jbe 0x43caad
mov al, byte [edi + 3]
test al, al
jne 0x43ca73
mov byte [esi], 0xff
jmp 0x43ca95
xor ecx, ecx
xor edx, edx
mov cl, byte [edi + 2]
mov dl, byte [edi + 1]
push 0xef
xor eax, eax
mov al, byte [edi]
push 0
push ecx
push edx
push eax
call fcn.00423b90
add esp, 0x14
mov byte [esi], al
mov ecx, dword [ebx + 0x10]
mov eax, dword [esp + 0x78]
imul ecx, dword [ebx + 0x14]
inc esi
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x78], eax
jb 0x43ca67
mov edx, dword [ebx + 0x10]
mov eax, esi
imul edx, dword [ebx + 0x14]
sub eax, ebp
mov edi, esi
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x14]
sub edi, edx
xor edx, edx
test eax, eax
jbe 0x43caf1
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cae7
imul eax, edx
add eax, ecx
add ecx, 2
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cad1
mov eax, dword [ebp + 0x14]
add edx, 2
cmp edx, eax
jb 0x43cac8
mov eax, dword [ebp + 0x14]
mov ecx, esi
sub ecx, ebp
xor edx, edx
test eax, eax
mov dword [ebp + 0x38], ecx
jbe 0x43cb2a
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cb20
imul eax, edx
add eax, ecx
add ecx, 4
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cb0a
mov eax, dword [ebp + 0x14]
add edx, 4
cmp edx, eax
jb 0x43cb01
mov eax, dword [ebp + 0x14]
mov ecx, esi
sub ecx, ebp
xor edx, edx
test eax, eax
mov dword [ebp + 0x3c], ecx
jbe 0x43cdde
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cb5d
imul eax, edx
add eax, ecx
add ecx, 8
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cb47
mov eax, dword [ebp + 0x14]
add edx, 8
cmp edx, eax
jb 0x43cb3e
jmp 0x43cdde
call fcn.00485c70
mov ecx, esi
add esp, 4
sub ecx, ebp
mov edi, eax
mov dword [ebp + 0x30], ecx
mov edx, dword [ebx + 0x10]
imul edx, dword [ebx + 0x14]
test edx, edx
mov dword [esp + 0x78], 0
jbe 0x43cbd6
mov al, byte [edi + 3]
test al, al
jne 0x43cb9c
mov byte [esi], 0xff
jmp 0x43cbbe
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 2]
mov cl, byte [edi + 1]
push 0xef
xor edx, edx
mov dl, byte [edi]
push 0
push eax
push ecx
push edx
call fcn.00423b90
add esp, 0x14
mov byte [esi], al
mov ecx, dword [ebx + 0x10]
mov eax, dword [esp + 0x78]
imul ecx, dword [ebx + 0x14]
inc esi
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x78], eax
jb 0x43cb90
mov edx, dword [ebx + 0x10]
mov eax, esi
imul edx, dword [ebx + 0x14]
sub eax, ebp
mov edi, esi
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x14]
sub edi, edx
xor edx, edx
test eax, eax
jbe 0x43cc1a
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cc10
imul eax, edx
add eax, ecx
add ecx, 2
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cbfa
mov eax, dword [ebp + 0x14]
add edx, 2
cmp edx, eax
jb 0x43cbf1
mov eax, dword [ebp + 0x14]
mov ecx, esi
sub ecx, ebp
xor edx, edx
test eax, eax
mov dword [ebp + 0x38], ecx
jbe 0x43cc53
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cc49
imul eax, edx
add eax, ecx
add ecx, 4
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cc33
mov eax, dword [ebp + 0x14]
add edx, 4
cmp edx, eax
jb 0x43cc2a
mov eax, dword [ebp + 0x14]
mov ecx, esi
sub ecx, ebp
xor edx, edx
test eax, eax
mov dword [ebp + 0x3c], ecx
jbe 0x43cdde
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cc86
imul eax, edx
add eax, ecx
add ecx, 8
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cc70
mov eax, dword [ebp + 0x14]
add edx, 8
cmp edx, eax
jb 0x43cc67
jmp 0x43cdde
mov eax, dword [0xc3eff0]
test eax, eax
je 0x43cdc8
push ebx
lea esi, [ebp + 0x44]
call fcn.00485fe0
mov ecx, esi
add esp, 4
sub ecx, ebp
mov edi, eax
mov dword [ebp + 0x30], ecx
mov edx, dword [ebx + 0x10]
imul edx, dword [ebx + 0x14]
test edx, edx
mov dword [esp + 0x78], 0
jbe 0x43cd10
mov al, byte [edi + 3]
test al, al
jne 0x43ccd6
mov byte [esi], 0xff
jmp 0x43ccf8
xor eax, eax
xor ecx, ecx
mov al, byte [edi + 2]
mov cl, byte [edi + 1]
push 0xef
xor edx, edx
mov dl, byte [edi]
push 0
push eax
push ecx
push edx
call fcn.00423b90
add esp, 0x14
mov byte [esi], al
mov ecx, dword [ebx + 0x10]
mov eax, dword [esp + 0x78]
imul ecx, dword [ebx + 0x14]
inc esi
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x78], eax
jb 0x43ccca
mov edx, dword [ebx + 0x10]
mov eax, esi
imul edx, dword [ebx + 0x14]
sub eax, ebp
mov edi, esi
mov dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x14]
sub edi, edx
xor edx, edx
test eax, eax
jbe 0x43cd54
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cd4a
imul eax, edx
add eax, ecx
add ecx, 2
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cd34
mov eax, dword [ebp + 0x14]
add edx, 2
cmp edx, eax
jb 0x43cd2b
mov eax, dword [ebp + 0x14]
mov ecx, esi
sub ecx, ebp
xor edx, edx
test eax, eax
mov dword [ebp + 0x38], ecx
jbe 0x43cd8d
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cd83
imul eax, edx
add eax, ecx
add ecx, 4
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cd6d
mov eax, dword [ebp + 0x14]
add edx, 4
cmp edx, eax
jb 0x43cd64
mov eax, dword [ebp + 0x14]
mov ecx, esi
sub ecx, ebp
xor edx, edx
test eax, eax
mov dword [ebp + 0x3c], ecx
jbe 0x43cdde
mov eax, dword [ebp + 0x10]
xor ecx, ecx
test eax, eax
jbe 0x43cdbc
imul eax, edx
add eax, ecx
add ecx, 8
inc esi
mov al, byte [eax + edi]
mov byte [esi - 1], al
mov eax, dword [ebp + 0x10]
cmp ecx, eax
jb 0x43cda6
mov eax, dword [ebp + 0x14]
add edx, 8
cmp edx, eax
jb 0x43cd9d
jmp 0x43cdde
mov ecx, edi
lea esi, [ebx + 0x28]
mov edx, ecx
lea edi, [ebp + 0x44]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 3
push 0x4a4a20
push ebx
call fcn.0048ccc0
add esp, 0xc
test eax, eax
jne 0x43cdfb
push ebp
call fcn.00461b50
add esp, 4
push ebp
call fcn.00486090
add esp, 4
mov dword [ebp + 0x40], eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
mov ecx, dword [esi]
inc eax
add edi, 4
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edi
jl 0x43c8a0
xor edi, edi
mov eax, ecx
cmp eax, edi
jle 0x43d0a0
mov dword [esp + 0x20], 1
mov dword [esp + 0x1c], edi
mov eax, dword [0x9eec04]
mov edx, dword [esp + 0x1c]
mov ecx, dword [eax + 0x174]
mov eax, dword [ecx + edx]
test eax, eax
mov dword [esp + 0x14], eax
je 0x43d07d
cmp byte [eax], 0x2b
jne 0x43d07d
mov ecx, eax
mov eax, dword [ecx + 0x28]
test eax, eax
jne 0x43d07d
mov ecx, 0xa
xor eax, eax
lea edi, [esp + 0x4c]
xor ebx, ebx
rep stosd dword es:[edi], eax
mov ecx, 0xa
lea edi, [esp + 0x24]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], ebx
movsx ebp, byte [eax + 1]
cmp ebp, 0x61
jl 0x43cea8
cmp ebp, 0x7a
jg 0x43cea8
sub ebp, 0x20
cmp ebp, 0x30
jl 0x43cec2
cmp ebp, 0x39
jg 0x43cec2
sub ebp, 0x30
xor ebx, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + ebp*4 + 0x4c], eax
inc ebp
jmp 0x43ceea
cmp ebp, 0x41
jl 0x43cedc
cmp ebp, 0x4a
jg 0x43cedc
lea ebx, [ebp - 0x41]
xor ebp, ebp
mov dword [esp + ebx*4 + 0x24], eax
inc ebx
mov dword [esp + 0x10], ebx
jmp 0x43ceea
push eax
push 0x4a4a24
call fcn.0047c340
add esp, 8
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], eax
cmp eax, dword [edx]
jge 0x43cfca
mov eax, dword [0x9eec04]
mov edx, dword [esp + 0x78]
mov ecx, dword [eax + 0x174]
mov edi, dword [ecx + edx*4]
test edi, edi
je 0x43cfaf
cmp byte [edi], 0x2b
jne 0x43cfaf
mov eax, dword [esp + 0x14]
lea esi, [eax + 2]
lea eax, [edi + 2]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x43cf4f
test cl, cl
je 0x43cf4b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x43cf4f
add eax, 2
add esi, 2
test cl, cl
jne 0x43cf2b
xor eax, eax
jmp 0x43cf54
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43cfaf
movsx eax, byte [edi + 1]
cmp eax, 0x61
jl 0x43cf69
cmp eax, 0x7a
jg 0x43cf69
sub eax, 0x20
cmp eax, 0x30
jl 0x43cf83
cmp eax, 0x39
jg 0x43cf83
sub eax, 0x30
mov dword [esp + eax*4 + 0x4c], edi
inc eax
cmp eax, ebp
jle 0x43cfaf
mov ebp, eax
jmp 0x43cfaf
cmp eax, 0x41
jl 0x43cf9d
cmp eax, 0x4a
jg 0x43cf9d
sub eax, 0x41
mov dword [esp + eax*4 + 0x24], edi
inc eax
cmp eax, ebx
jle 0x43cfaf
mov ebx, eax
jmp 0x43cfaf
mov eax, dword [esp + 0x14]
push eax
push 0x4a4a40
call fcn.0047c340
add esp, 8
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
inc eax
mov edx, dword [ecx]
mov dword [esp + 0x78], eax
cmp eax, edx
jl 0x43cefe
mov dword [esp + 0x10], ebx
xor eax, eax
test ebp, ebp
jle 0x43d017
lea ebx, [ebp + ebp]
lea edi, [esp + 0x50]
mov ecx, dword [edi - 4]
test ecx, ecx
jne 0x43cfe1
mov ecx, dword [edi]
lea edx, [eax + eax]
lea esi, [eax + 1]
mov dword [ecx + 0x20], edx
add edx, 2
mov eax, esi
mov dword [ecx + 0x24], edx
cdq
idiv ebp
mov eax, dword [esp + 0x10]
mov dword [ecx + 0x1c], ebx
test eax, eax
mov edx, dword [esp + edx*4 + 0x4c]
mov dword [ecx + 0x28], edx
je 0x43d00e
mov eax, dword [esp + 0x24]
mov dword [ecx + 0x2c], eax
mov eax, esi
add edi, 4
cmp eax, ebp
jl 0x43cfd8
mov eax, dword [esp + 0x10]
xor edi, edi
test eax, eax
jle 0x43d07d
mov ecx, eax
lea ebx, [esp + 0x24]
lea edx, [ecx + ecx]
mov dword [esp + 0x78], edx
mov esi, dword [ebx]
test esi, esi
jne 0x43d047
mov eax, dword [esp + 0x14]
push eax
push edi
push 0x4a4a5c
call fcn.0047c340
add esp, 0xc
mov ecx, dword [esp + 0x78]
lea eax, [edi + edi]
mov dword [esi + 0x20], eax
add eax, 2
inc edi
mov dword [esi + 0x24], eax
mov eax, edi
mov dword [esi + 0x1c], ecx
mov ecx, dword [esp + 0x10]
cdq
idiv ecx
test ebp, ebp
mov edx, dword [esp + edx*4 + 0x24]
mov dword [esi + 0x28], edx
je 0x43d076
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x2c], eax
add ebx, 4
cmp edi, ecx
jl 0x43d02e
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
add edi, 4
inc eax
mov dword [esp + 0x1c], edi
mov edx, dword [ecx]
mov dword [esp + 0x20], eax
dec eax
cmp eax, edx
jl 0x43ce41
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret