Function at 0x4663e0
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.0048a000
add esp, 0x10
test eax, eax
je 0x466417
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 0x46667d
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 0x46658d
test edx, edx
jle 0x46674e
jmp 0x4664e0
mov ebp, dword [esp + 0x14]
test ebp, ebp
jle 0x46656d
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 0x4664f2
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
add edi, ebx
add esi, ecx
dec edx
jne 0x4664e0
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x90
ret
test edx, edx
jle 0x46674e
mov dword [esp + 0x1c], edx
lea esp, [esp]
mov ebx, dword [esp + 0x14]
test ebx, ebx
jle 0x46662d
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 0x4665b2
xor ecx, ecx
test ebp, ebp
jle 0x466655
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 0x466640
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 0x4665a0
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 0x46674e
mov dword [esp + 0x1c], edx
jmp 0x4666e0
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x14], eax
js 0x4666fe
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 0x466736
lea esp, [esp]
add ebp, dword [esp + 0x38]
js 0x46671f
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 0x466710
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 0x4666e0
pop edi
pop ebp
pop ebx
xor eax, eax
pop esi
add esp, 0x90
ret