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

Disassembly:
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
sub esp, 0x90
push esi
mov esi, dword [esp + 0x9c]
lea eax, [esp + 0x30]
push eax
push ecx
push esi
push edx
call fcn.00496340
add esp, 0x10
test eax, eax
je 0x45c227
mov eax, 1
pop esi
add esp, 0x90
ret
mov esi, dword [esi + 0xc]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov dword [esp + 4], esi
imul eax, dword [esp + 4]
mov esi, dword [esp + 0xa4]
mov esi, dword [esi + 0xc]
push ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x10], esi
lea esi, [eax + ebx*4]
mov eax, dword [esp + 0xa0]
add esi, dword [eax + 8]
mov eax, dword [esp + 0x10]
push ebp
mov ebp, dword [esp + 0x50]
imul eax, ebp
push edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x98], ecx
mov ecx, dword [esp + 0x58]
sub ecx, edi
mov dword [esp + 0x9c], edx
mov edx, dword [esp + 0x5c]
lea edi, [eax + edi*4]
mov eax, dword [esp + 0xb0]
sub edx, ebp
mov ebp, dword [eax + 8]
mov al, byte [esp + 0x3c]
add edi, ebp
test al, al
je 0x45c48d
mov eax, ecx
sar eax, 3
mov dword [esp + 0x14], eax
mov ebp, ecx
and ebp, 7
mov eax, ebp
sub eax, dword [esp + 0x98]
add eax, ebx
mov ebx, dword [esp + 0x10]
lea eax, [ebx + eax*4]
mov dword [esp + 0x10], eax
mov eax, ebp
sub eax, ecx
test ebp, ebp
mov ecx, dword [esp + 0x18]
lea eax, [ecx + eax*4]
mov dword [esp + 0x18], eax
jne 0x45c39d
test edx, edx
jle 0x45c55e
jmp 0x45c2f0
mov ebp, dword [esp + 0x14]
test ebp, ebp
jle 0x45c37d
lea eax, [edi + 0xa]
lea ecx, [esi + 0xa]
mov bx, word [esi]
mov word [edi], bx
mov bl, byte [ecx - 8]
mov byte [eax - 8], bl
mov bx, word [ecx - 6]
mov word [eax - 6], bx
mov bl, byte [ecx - 4]
mov byte [eax - 4], bl
mov bx, word [ecx - 2]
mov word [eax - 2], bx
mov bl, byte [ecx]
mov byte [eax], bl
mov bx, word [ecx + 2]
mov word [eax + 2], bx
mov bl, byte [ecx + 4]
mov byte [eax + 4], bl
mov bx, word [ecx + 6]
mov word [eax + 6], bx
mov bl, byte [ecx + 8]
mov byte [eax + 8], bl
mov bx, word [ecx + 0xa]
mov word [eax + 0xa], bx
mov bl, byte [ecx + 0xc]
mov byte [eax + 0xc], bl
mov bx, word [ecx + 0xe]
mov word [eax + 0xe], bx
mov bl, byte [ecx + 0x10]
mov byte [eax + 0x10], bl
mov bx, word [ecx + 0x12]
mov word [eax + 0x12], bx
mov bl, byte [ecx + 0x14]
mov byte [eax + 0x14], bl
add edi, 0x20
add eax, 0x20
add esi, 0x20
add ecx, 0x20
dec ebp
jne 0x45c302
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add edi, ebx
add esi, ecx
dec edx
jne 0x45c2f0
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x90
ret
test edx, edx
jle 0x45c55e
mov dword [esp + 0x1c], edx
lea esp, [esp]
mov ebx, dword [esp + 0x14]
test ebx, ebx
jle 0x45c43d
lea eax, [edi + 0xa]
lea ecx, [esi + 0xa]
mov dx, word [esi]
mov word [edi], dx
mov dl, byte [ecx - 8]
mov byte [eax - 8], dl
mov dx, word [ecx - 6]
mov word [eax - 6], dx
mov dl, byte [ecx - 4]
mov byte [eax - 4], dl
mov dx, word [ecx - 2]
mov word [eax - 2], dx
mov dl, byte [ecx]
mov byte [eax], dl
mov dx, word [ecx + 2]
mov word [eax + 2], dx
mov dl, byte [ecx + 4]
mov byte [eax + 4], dl
mov dx, word [ecx + 6]
mov word [eax + 6], dx
mov dl, byte [ecx + 8]
mov byte [eax + 8], dl
mov dx, word [ecx + 0xa]
mov word [eax + 0xa], dx
mov dl, byte [ecx + 0xc]
mov byte [eax + 0xc], dl
mov dx, word [ecx + 0xe]
mov word [eax + 0xe], dx
mov dl, byte [ecx + 0x10]
mov byte [eax + 0x10], dl
mov dx, word [ecx + 0x12]
mov word [eax + 0x12], dx
mov dl, byte [ecx + 0x14]
mov byte [eax + 0x14], dl
add edi, 0x20
add eax, 0x20
add esi, 0x20
add ecx, 0x20
dec ebx
jne 0x45c3c2
xor ecx, ecx
test ebp, ebp
jle 0x45c465
mov ebx, esi
lea eax, [edi + 2]
sub ebx, edi
lea ebx, [ebx]
mov dx, word [esi + ecx*4]
mov word [eax - 2], dx
mov dl, byte [ebx + eax]
mov byte [eax], dl
inc ecx
add eax, 4
cmp ecx, ebp
jl 0x45c450
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
add edi, edx
add esi, ecx
dec eax
mov dword [esp + 0x1c], eax
jne 0x45c3b0
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x90
ret
mov eax, dword [esp + 0x7c]
mov ebx, dword [esp + 0x10]
imul ebx, dword [esp + 0x8c]
shl eax, 2
test edx, edx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x14], eax
jle 0x45c55e
mov dword [esp + 0x1c], edx
jmp 0x45c4f0
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
js 0x45c50e
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
add esi, ebp
sub eax, edx
mov dword [esp + 0x14], eax
mov ebp, dword [esp + 0x20]
xor eax, eax
test ecx, ecx
mov dword [esp + 0x30], esi
jle 0x45c546
lea esp, [esp]
add ebp, dword [esp + 0x38]
js 0x45c52f
mov edx, dword [esp + 0x24]
add esi, 4
sub ebp, edx
mov dx, word [esi]
mov word [edi + eax*4], dx
mov dl, byte [esi + 2]
mov byte [edi + eax*4 + 2], dl
add esi, dword [esp + 0x28]
inc eax
cmp eax, ecx
jl 0x45c520
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x18]
lea esi, [eax + ebx]
mov eax, dword [esp + 0x1c]
add edi, edx
dec eax
mov dword [esp + 0x1c], eax
jne 0x45c4f0
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x90
ret