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

Disassembly:
push ebp
xor edx, edx
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x84]
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x74]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
imul eax, ecx
lea eax, [ebp + eax - 1]
div ebp
mov ebp, dword [esp + 0x88]
xor edx, edx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x8c]
imul eax, edi
lea eax, [ebp + eax - 1]
div ebp
movzx ebp, byte [esp + 0x7c]
mov edx, dword [esi + 8]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x90]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x44]
mov dword [esp + 0xc], ebp
mov ebp, dword [ebx + 8]
mov dword [esp + 8], ebp
mov ebp, dword [ebx + 0x18]
mov dword [esp], edi
mov dword [esp + 4], ebp
call fcn.00c2fb60
mov ecx, dword [ebx]
cmp dword [esp + 0x44], ecx
jge 0xc303c9
mov eax, dword [esp + 0x38]
test eax, eax
jle 0xc303c9
mov ebp, dword [esp + 0x44]
xor edi, edi
mov dword [esp + 0x40], esi
mov edx, dword [ebx + 8]
mov esi, dword [esp + 0x44]
sub ebp, 1
jmp 0xc30395
mov ecx, dword [ebx]
mov edx, dword [ebx + 8]
mov eax, dword [ebx + 0x18]
imul edx, edi
sub ecx, esi
add ecx, 1
add edi, 1
mov dword [esp + 8], ecx
lea ecx, [eax + esi]
movzx ecx, byte [edx + ecx - 2]
add edx, ebp
add edx, eax
mov dword [esp], edx
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memset
cmp dword [esp + 0x38], edi
jne 0xc30390
mov esi, dword [esp + 0x40]
mov eax, dword [ebx + 4]
cmp dword [esp + 0x38], eax
jge 0xc30423
mov edi, dword [esp + 0x38]
sub edi, 1
cmp eax, edi
jle 0xc30423
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], esi
sub eax, 2
mov esi, eax
lea esi, [esi]
mov edx, dword [ebx + 8]
mov ecx, edi
add edi, 1
mov eax, dword [ebx + 0x18]
mov ebp, dword [ebx]
imul ecx, edx
imul edx, esi
add ebp, 1
mov dword [esp + 8], ebp
add ecx, eax
add edx, eax
mov dword [esp + 4], edx
mov dword [esp], ecx
call sub.msvcrt.dll_memcpy
cmp dword [ebx + 4], edi
jg 0xc303f0
mov esi, dword [esp + 0x40]
mov eax, dword [esp + 0x38]
mov ebp, dword [esp + 0x90]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x14]
shr eax, 0x1f
mov edi, dword [esp + 0x44]
add eax, dword [esp + 0x38]
sar eax, 1
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x1c]
shr edi, 0x1f
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x8c]
add edi, dword [esp + 0x44]
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x88]
sar edi, 1
mov dword [esp + 0xc], edi
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x14]
mov dword [esp + 8], ebp
mov ebp, dword [ebx + 0x1c]
mov dword [esp + 4], ebp
mov ebp, dword [esi + 0x10]
mov dword [esp], ebp
call fcn.00c2fb60
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
cmp edi, ecx
jge 0xc3051c
test eax, eax
jle 0xc3051c
mov eax, edi
xor ebp, ebp
lea edx, [edi - 1]
neg eax
mov dword [esp + 0x40], edx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x4c], esi
mov esi, eax
jmp 0xc304e6
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x1c]
imul edx, ebp
add ebp, 1
lea ecx, [ecx + esi + 1]
mov dword [esp + 8], ecx
lea ecx, [eax + edi]
movzx ecx, byte [edx + ecx - 2]
add edx, dword [esp + 0x40]
add edx, eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x10]
cmp eax, ebp
jg 0xc304e0
mov esi, dword [esp + 0x4c]
cmp dword [esp + 0x38], eax
jge 0xc30582
mov edx, dword [ebx + 4]
mov ebp, dword [esp + 0x38]
mov eax, edx
shr eax, 0x1f
sub ebp, 1
add eax, edx
sar eax, 1
cmp ebp, eax
jge 0xc30582
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], esi
sub eax, 2
mov esi, eax
mov edx, dword [ebx + 0x14]
mov ecx, ebp
add ebp, 1
mov eax, dword [ebx + 0x1c]
imul ecx, edx
imul edx, esi
add ecx, eax
add eax, edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 4]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
cmp eax, ebp
jg 0xc30546
mov esi, dword [esp + 0x40]
mov ebp, dword [esp + 0x90]
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x14]
mov dword [esp + 0x2c], ebp
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0xc], edi
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x88]
mov dword [esp + 0x24], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x20], ebp
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x78]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x10], ebp
mov ebp, dword [ebx + 0x14]
mov dword [esp + 8], ebp
mov ebp, dword [ebx + 0x20]
mov dword [esp + 4], ebp
mov esi, dword [esi + 0x10]
mov dword [esp], esi
call fcn.00c2fb60
mov ecx, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
cmp edi, ecx
jge 0xc3065a
test eax, eax
jle 0xc3065a
mov ebp, dword [esp + 0x44]
lea edx, [edi - 1]
xor esi, esi
mov dword [esp + 0x3c], edx
mov edx, dword [ebx + 0x14]
shr ebp, 0x1f
add ebp, dword [esp + 0x44]
sar ebp, 1
neg ebp
jmp 0xc30628
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x20]
imul edx, esi
add esi, 1
lea ecx, [ecx + ebp + 1]
mov dword [esp + 8], ecx
lea ecx, [eax + edi]
movzx ecx, byte [edx + ecx - 2]
add edx, dword [esp + 0x3c]
add edx, eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memset
mov eax, dword [ebx + 0x10]
cmp eax, esi
jg 0xc30622
cmp dword [esp + 0x38], eax
jge 0xc306b8
mov eax, dword [ebx + 4]
mov esi, dword [esp + 0x38]
mov edx, eax
shr edx, 0x1f
sub esi, 1
add eax, edx
sar eax, 1
cmp eax, esi
jle 0xc306b8
mov edi, dword [esp + 0x38]
sub edi, 2
nop
mov edx, dword [ebx + 0x14]
mov ecx, esi
add esi, 1
mov eax, dword [ebx + 0x20]
imul ecx, edx
imul edx, edi
add ecx, eax
add eax, edx
mov edx, dword [ebx + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], edx
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx + 4]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
cmp eax, esi
jg 0xc30680
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret