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

Disassembly:
sub esp, 0x2c
push ebp
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0x14]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
xor esi, esi
xor ebp, ebp
test eax, eax
mov dword [esp + 0x18], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
jl 0x5c6ca4
push ebx
mov ebx, dword [esp + 0x48]
test ebx, ebx
jl 0x5c6ca3
cmp dword [esp + 0x4c], esi
jl 0x5c6ca3
cmp dword [edi + 0xfab8], esi
je 0x5c6ca3
test ebx, ebx
jle 0x5c64ac
mov ecx, dword [edi + 0x1544]
test ecx, ecx
jg 0x5c636b
mov ecx, 1
mov eax, 0x20
cdq
idiv ecx
mov esi, eax
mov eax, 0x40
cdq
idiv ecx
add esi, dword [esp + 0x44]
mov ebp, eax
mov eax, esi
cdq
idiv ebp
mov ebp, eax
cmp ebp, ecx
jl 0x5c6390
sub ebp, ecx
mov eax, dword [edi + 0x153c]
cdq
idiv ecx
mov ecx, eax
imul eax, dword [esp + 0x4c]
cdq
imul ecx, ebp
idiv ebx
mov esi, eax
add esi, ecx
push esi
lea ecx, [edi + 0x1538]
call fcn.005f0400
mov dword [esp + 0x20], 0
add edi, 0xa4
mov dword [esp + 0x28], 0x14
lea esp, [esp]
mov dword [esp + 0x24], 2
jmp 0x5c63e0
mov ebx, dword [edi - 8]
test ebx, ebx
jle 0x5c648b
cmp byte [edi + 0x20], 0
lea eax, [edi + 0x20]
je 0x5c648b
cmp dword [esp + 0x20], 0
jne 0x5c645a
mov ecx, dword [edi]
test ecx, ecx
jg 0x5c640a
mov ecx, 1
mov eax, 0x20
cdq
idiv ecx
mov esi, eax
mov eax, 0x40
cdq
idiv ecx
add esi, dword [esp + 0x44]
mov ebp, eax
mov eax, esi
cdq
idiv ebp
mov ebp, eax
cmp ebp, ecx
jl 0x5c642f
sub ebp, ecx
mov eax, ebx
cdq
idiv ecx
mov ecx, eax
imul eax, dword [esp + 0x4c]
cdq
imul ecx, ebp
idiv dword [esp + 0x48]
mov esi, eax
add esi, ecx
push esi
lea ecx, [edi - 0xc]
call fcn.005f0400
mov dword [esp + 0x20], 1
jmp 0x5c648b
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
push 1
lea ebx, [esp + 0x30]
push ebx
push eax
mov eax, dword [edx + 0x34]
call eax
test al, al
je 0x5c648b
movsx ecx, word [esp + 0x38]
movsx edx, word [esp + 0x2c]
mov dword [edi], ecx
push esi
lea ecx, [edi - 0xc]
mov dword [edi - 8], edx
call fcn.005f0400
mov eax, 1
add edi, 0x84
sub dword [esp + 0x24], eax
jne 0x5c63e0
sub dword [esp + 0x28], eax
jne 0x5c63d0
jmp 0x5c6529
lea ebx, [edi + 0x1538]
push eax
mov ecx, ebx
call fcn.005f04b0
test eax, eax
je 0x5c64c7
push 1
mov ecx, ebx
call fcn.005f05a0
add edi, 0xc4
mov dword [esp + 0x24], 0x14
jmp 0x5c64e0
mov dword [esp + 0x28], 2
cmp dword [edi - 0x28], 0
jle 0x5c6515
cmp byte [edi], 0
je 0x5c6515
mov eax, dword [esp + 0x44]
lea ebx, [edi - 0x2c]
push eax
mov ecx, ebx
call fcn.005f04b0
test eax, eax
je 0x5c6515
push 1
mov ecx, ebx
call fcn.005f05a0
mov ebp, dword [edi - 0x1c]
mov esi, dword [edi - 0x24]
add edi, 0x84
sub dword [esp + 0x28], 1
jne 0x5c64e8
sub dword [esp + 0x24], 1
jne 0x5c64e0
mov ebx, dword [esp + 0x1c]
lea edi, [ebx + 0x15d4]
mov dword [esp + 0x44], 6
jmp 0x5c6540
push 1
mov ecx, edi
call fcn.005f05a0
add edi, 0x9c
sub dword [esp + 0x44], 1
jne 0x5c6540
lea edi, [ebx + 0x1964]
push 0
mov ecx, edi
call fcn.005f05a0
test eax, eax
je 0x5c657b
mov ecx, edi
call fcn.005f0540
test eax, eax
je 0x5c657b
mov ecx, edi
call fcn.005f0300
mov eax, dword [esp + 0x48]
cdq
and edx, 3
add eax, edx
sar eax, 2
cmp dword [esp + 0x4c], eax
jge 0x5c65a4
mov ecx, ebx
call fcn.005c3e10
mov ecx, dword [ebx + 0x10]
mov edx, dword [ebx + 0xc]
push ecx
push edx
mov ecx, ebx
call fcn.005c5ba0
mov ecx, dword [ebx + 0xfab8]
push 0x14
lea eax, [ebx + 0x1d14]
push eax
push esi
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 4]
push ebp
push eax
call fcn.005b0340
test eax, eax
je 0x5c6ca3
lea ecx, [ebx + 0x1d64]
lea eax, [ebx + 0x1564]
sub ecx, eax
lea edx, [ecx + 0x20]
jmp 0x5c65e0
mov cl, byte [eax]
mov byte [edx + eax], cl
add eax, 1
test cl, cl
jne 0x5c65e0
mov ecx, dword [ebx + 0x15b4]
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x1e04], ecx
mov dx, word [ebx + 0x1540]
mov ecx, dword [esp + 0x10]
mov dword [ebx + 0x1d64], eax
xor eax, eax
mov dword [ebx + 0x1d6c], eax
mov dword [ebx + 0x1e0c], eax
lea ebp, [eax + 1]
lea eax, [ebx + 0x15bc]
mov dword [ebx + 0x1d68], ecx
mov ecx, eax
mov word [ebx + 0x1e0a], dx
mov dword [esp + 0x44], ecx
lea esi, [ecx + 0x44]
lea eax, [ebx + 0x1e10]
mov dword [esp + 0x4c], 6
cmp dword [ecx], 0
je 0x5c66a4
cmp dword [esi - 0x40], 2
jne 0x5c66a4
mov edx, eax
sub edx, esi
mov ecx, esi
lea edi, [edx + 0x20]
lea esp, [esp]
mov dl, byte [ecx]
mov byte [edi + ecx], dl
add ecx, 1
test dl, dl
jne 0x5c6660
mov ecx, dword [esi + 0x50]
mov dword [eax + 0xa0], ecx
mov dx, word [esi - 0x24]
mov ecx, dword [esp + 0x14]
mov dword [eax], ecx
xor ecx, ecx
mov word [eax + 0xa6], dx
mov edx, dword [esp + 0x10]
mov dword [eax + 8], ecx
mov dword [eax + 0xa8], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 4], edx
add ebp, 1
add eax, 0xac
add ecx, 0x9c
add esi, 0x9c
sub dword [esp + 0x4c], 1
mov dword [esp + 0x44], ecx
jne 0x5c6648
mov eax, dword [esp + 0x50]
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push 3
lea eax, [ebx + 0x1d64]
push eax
push ebp
call edx
xor ebp, ebp
mov dword [esp + 0x44], ebp
lea edi, [ebx + 0x15bc]
mov dword [esp + 0x48], 6
jmp 0x5c66f0
cmp dword [edi], 0
je 0x5c684e
cmp dword [edi + 4], 1
jne 0x5c684e
mov ecx, dword [edi + 0x14]
cmp ecx, 1
jl 0x5c684e
cmp ecx, 3
jg 0x5c684e
cmp ecx, 1
mov eax, dword [edi + 0x20]
jne 0x5c67a7
cmp dword [edi + 0xc], eax
jg 0x5c684e
cmp eax, dword [edi + 0x10]
jge 0x5c684e
mov eax, ebp
imul eax, eax, 0xac
lea eax, [eax + ebx + 0x1d64]
lea ecx, [edi + 0x44]
mov edx, eax
sub edx, ecx
lea esi, [edx + 0x20]
nop
mov dl, byte [ecx]
mov byte [esi + ecx], dl
add ecx, 1
test dl, dl
jne 0x5c6750
mov ecx, dword [edi + 0x94]
mov dword [eax + 0xa0], ecx
mov dx, word [edi + 0x20]
mov ecx, dword [esp + 0x14]
mov word [eax + 0xa6], dx
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xa8], ecx
cmp dword [ebx + 0x38], ecx
je 0x5c6792
mov ecx, 0x26
mov edx, dword [esp + 0x18]
add ecx, edx
add ebp, 1
mov dword [eax + 8], ecx
mov dword [esp + 0x44], ebp
jmp 0x5c684e
test ecx, ecx
mov dword [esp + 0x4c], 0
jle 0x5c684e
imul ebp, ebp, 0xac
lea esi, [ebx + ebp + 0x1d64]
push ecx
push eax
lea ecx, [edi + 0x18]
call fcn.005f0580
cmp dword [edi + 0xc], eax
jg 0x5c6834
cmp eax, dword [edi + 0x10]
jge 0x5c6834
lea ecx, [edi + 0x44]
mov edx, esi
sub edx, ecx
lea ebp, [edx + 0x20]
mov dl, byte [ecx]
mov byte [ecx + ebp], dl
add ecx, 1
test dl, dl
jne 0x5c67e2
mov ecx, dword [edi + 0x94]
mov edx, dword [esp + 0x14]
mov dword [esi + 0xa0], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 4], ecx
xor ecx, ecx
mov word [esi + 0xa6], ax
mov dword [esi], edx
mov dword [esi + 0xa8], ecx
cmp dword [ebx + 0x38], ecx
je 0x5c6820
mov ecx, 0x26
mov edx, dword [esp + 0x18]
add dword [esp + 0x44], 1
add ecx, edx
mov dword [esi + 8], ecx
add esi, 0xac
mov edx, dword [esp + 0x4c]
mov ecx, dword [edi + 0x14]
add edx, 1
cmp edx, ecx
mov dword [esp + 0x4c], edx
jl 0x5c67c4
mov ebp, dword [esp + 0x44]
add edi, 0x9c
sub dword [esp + 0x48], 1
jne 0x5c66f0
mov eax, dword [esp + 0x50]
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push 3
lea eax, [ebx + 0x1d64]
push eax
mov eax, dword [esp + 0x50]
push eax
call edx
mov eax, dword [ebx + 0x19e8]
xor ebp, ebp
cmp eax, ebp
mov dword [esp + 0x44], ebp
jbe 0x5c68a9
cmp eax, dword [0x6e1dac]
ja 0x5c68a9
mov ecx, dword [0x6e1da8]
mov edx, dword [ecx + eax*4 - 4]
mov bl, 5
mov dword [esp + 0x44], edx
jmp 0x5c68b9
mov eax, dword [esp + 0x1c]
mov cl, byte [eax + 0xfabc]
xor bl, bl
mov byte [esp + 0x47], cl
mov edx, dword [esp + 0x24]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], 0x14
mov edx, 1
mov edi, edi
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
cmp eax, 0x13
ja 0x5c6984
mov ecx, dword [esp + 0x1c]
mov esi, ebp
imul esi, esi, 0xac
imul eax, eax, 0x108
lea esi, [esi + ecx + 0x1e0c]
lea edi, [eax + ecx + 0xc4]
mov dword [esp + 0x48], 2
cmp dword [edi - 0x28], 0
jle 0x5c6978
cmp byte [edi], 0
je 0x5c6978
push 0x7f
lea ecx, [esi - 0x88]
push edi
push ecx
call dword [fcn.0063a400]
mov edx, dword [edi + 0x54]
mov eax, dword [esp + 0x50]
mov dword [esi], edx
mov dword [esi - 0x90], eax
mov eax, dword [esp + 0x20]
mov byte [esi - 9], 0
mov byte [esi - 0x8c], bl
mov ecx, dword [edi + 0x50]
mov dword [esi - 8], ecx
mov dx, word [edi - 0x24]
mov ecx, dword [esp + 0x1c]
mov word [esi - 2], dx
mov edx, dword [esp + 0x24]
mov dword [esi - 0xa0], edx
add esp, 0xc
mov dword [esi - 0xa8], eax
mov dword [esi - 0xa4], ecx
add ebp, 1
add esi, 0xac
mov edx, 1
add edi, 0x84
sub dword [esp + 0x48], edx
jne 0x5c6907
add dword [esp + 0x4c], 4
sub dword [esp + 0x28], edx
jne 0x5c68d0
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push 3
lea eax, [ebx + 0x1d64]
push eax
push ebp
call edx
mov dword [esp + 0x44], 0
lea edi, [ebx + 0x15bc]
mov dword [esp + 0x48], 6
lea esp, [esp]
cmp dword [edi], 0
je 0x5c6b2c
cmp dword [edi + 4], 1
jne 0x5c6b2c
mov ecx, dword [edi + 0x14]
cmp ecx, 1
jl 0x5c6b2c
cmp ecx, 3
jg 0x5c6b2c
cmp ecx, 1
mov eax, dword [edi + 0x20]
jne 0x5c6a85
cmp eax, dword [edi + 0xc]
jl 0x5c6a12
cmp eax, dword [edi + 0x10]
jl 0x5c6b2c
mov eax, dword [esp + 0x44]
imul eax, eax, 0xac
lea eax, [eax + ebx + 0x1d64]
lea ecx, [edi + 0x44]
mov edx, eax
sub edx, ecx
lea esi, [edx + 0x20]
lea ecx, [ecx]
mov dl, byte [ecx]
mov byte [esi + ecx], dl
add ecx, 1
test dl, dl
jne 0x5c6a30
mov ecx, dword [edi + 0x94]
mov dword [eax + 0xa0], ecx
mov dx, word [edi + 0x20]
mov ecx, dword [esp + 0x14]
mov word [eax + 0xa6], dx
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xa8], ecx
cmp dword [ebx + 0x38], ecx
je 0x5c6a72
mov ecx, 0x26
mov edx, dword [esp + 0x18]
add ecx, edx
add dword [esp + 0x44], 1
mov dword [eax + 8], ecx
jmp 0x5c6b2c
test ecx, ecx
mov dword [esp + 0x4c], 0
jle 0x5c6b2c
mov edx, dword [esp + 0x44]
imul edx, edx, 0xac
lea esi, [edx + ebx + 0x1d64]
push ecx
push eax
lea ecx, [edi + 0x18]
call fcn.005f0580
cmp eax, dword [edi + 0xc]
jl 0x5c6aba
cmp eax, dword [edi + 0x10]
jl 0x5c6b16
lea ecx, [edi + 0x44]
mov edx, esi
sub edx, ecx
lea ebp, [edx + 0x20]
mov dl, byte [ecx]
mov byte [ecx + ebp], dl
add ecx, 1
test dl, dl
jne 0x5c6ac4
mov ecx, dword [edi + 0x94]
mov edx, dword [esp + 0x14]
mov dword [esi + 0xa0], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 4], ecx
xor ecx, ecx
mov word [esi + 0xa6], ax
mov dword [esi], edx
mov dword [esi + 0xa8], ecx
cmp dword [ebx + 0x38], ecx
je 0x5c6b02
mov ecx, 0x26
mov edx, dword [esp + 0x18]
add dword [esp + 0x44], 1
add ecx, edx
mov dword [esi + 8], ecx
add esi, 0xac
mov edx, dword [esp + 0x4c]
mov ecx, dword [edi + 0x14]
add edx, 1
cmp edx, ecx
mov dword [esp + 0x4c], edx
jl 0x5c6aa6
add edi, 0x9c
sub dword [esp + 0x48], 1
jne 0x5c69d0
cmp byte [ebx + 0x1990], 0
lea ecx, [ebx + 0x1990]
je 0x5c6bb7
mov eax, dword [esp + 0x44]
imul eax, eax, 0xac
lea eax, [eax + ebx + 0x1d64]
mov edx, eax
sub edx, ecx
lea esi, [edx + 0x20]
mov dl, byte [ecx]
mov byte [ecx + esi], dl
add ecx, 1
test dl, dl
jne 0x5c6b64
mov ecx, dword [ebx + 0x19e0]
mov dword [eax + 0xa0], ecx
mov dx, word [ebx + 0x196c]
mov ecx, dword [esp + 0x14]
mov word [eax + 0xa6], dx
mov edx, dword [esp + 0x10]
mov dword [eax], ecx
xor ecx, ecx
mov dword [eax + 4], edx
mov dword [eax + 0xa8], ecx
cmp dword [ebx + 0x38], ecx
je 0x5c6ba9
mov ecx, 0x26
mov edx, dword [esp + 0x18]
add ecx, edx
add dword [esp + 0x44], 1
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x50]
mov ecx, dword [0x6e0f70]
mov edx, dword [ecx]
mov edx, dword [edx + 0x48]
push eax
push 3
lea eax, [ebx + 0x1d64]
push eax
mov eax, dword [esp + 0x50]
push eax
call edx
lea ebp, [ebx + 0x3e50]
push 0
mov ecx, ebp
call fcn.005c6140
cmp dword [ebx + 0x3c], 1
jne 0x5c6ca3
mov ecx, ebp
call fcn.005c41b0
test eax, eax
je 0x5c6ca3
call fcn.005c40d0
mov eax, dword [esp + 0x24]
xor edi, edi
mov dword [esp + 0x44], eax
mov dword [esp + 0x4c], 0x14
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx]
cmp eax, 0x13
ja 0x5c6c74
mov edx, dword [esp + 0x1c]
imul eax, eax, 0x108
lea esi, [eax + edx + 0xa0]
mov ebx, 2
jmp 0x5c6c40
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
push eax
mov eax, dword [esi + 0x78]
push ecx
mov ecx, dword [esi]
push edx
mov edx, dword [esi + 0x74]
push eax
push ecx
push edx
lea eax, [esi + 0x24]
push eax
push edi
mov ecx, ebp
call fcn.005c40f0
add edi, 1
add esi, 0x84
sub ebx, 1
jne 0x5c6c40
add dword [esp + 0x44], 4
sub dword [esp + 0x4c], 1
jne 0x5c6c16
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
mov edx, dword [eax + 0x14]
push ecx
mov ecx, dword [eax + 0x10]
push edx
mov edx, dword [eax + 0xc]
push ecx
push edx
mov ecx, ebp
call fcn.005c4090
mov ecx, ebp
call fcn.005c4070
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x2c
ret 0x14