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

Disassembly:
push edi
push esi
push ebp
push ebx
mov edi, dword [esp + 0x14]
sub esp, 0x54
mov eax, dword [edi + 0x34]
cmp eax, 1
je 0x657559
cmp eax, 2
je 0x657559
cmp eax, 5
je 0x657559
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [edi + 0x37b8]
mov edx, dword [esp + 0x78]
mov ecx, dword [edi + 0x37bc]
mov ebx, dword [esp + 0x6c]
imul eax, edx
imul ecx, edx
mov dword [esp + 4], eax
lea eax, [ebx + 0x2c]
mov dword [esp + 8], ecx
lea edx, [edi + 4]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x74]
mov dword [esp], edx
mov edx, dword [edi + 0x30]
mov dword [esp + 0xc], ecx
mov ecx, dword [edi + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], edx
mov edx, dword [edi + 0x24]
mov dword [esp + 0x18], ecx
mov ecx, dword [edi + 0x28]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x30]
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x24], ecx
call fcn.006549e4
test eax, eax
jne 0x657727
mov ebx, dword [ebx + 0x2c]
mov eax, dword [edi + 0x30]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], eax
cmp eax, 3
je 0x657804
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
cmp edx, eax
jge 0x657727
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x38]
imul ecx, ebx
mov dword [esp + 0x40], ecx
mov esi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x40]
imul esi, dword [esp + 0x30]
cmp esi, ecx
jge 0x65771e
mov dword [esp + 0x44], edx
nop
lea esi, [esi]
mov ebp, dword [esp + 0x44]
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x48]
imul ebp, dword [eax + 0x3c]
add ebp, edx
movzx ecx, byte [ebp + esi + 2]
movzx ebx, byte [ebp + esi]
movsx ecx, cx
movsx ebx, bx
movzx edi, byte [ebp + esi + 1]
imul edx, ecx, 0x167
add edx, 0xffff4d0b
sar edx, 8
add edx, ebx
cmp edx, 0xff
jle 0x657674
mov edx, 0xff
jmp 0x65767c
test edx, edx
jl 0x6577f4
imul ecx, ecx, 0xffffff49
movsx edx, dx
mov eax, edx
mov edx, edi
movsx edx, dx
mov dword [esp + 0x50], eax
imul eax, edx, 0xffffffa8
lea ecx, [eax + ecx + 0x87f6]
sar ecx, 8
add ecx, ebx
cmp ecx, 0xff
jle 0x6576b4
mov ecx, 0xff
jmp 0x6576bc
test ecx, ecx
jl 0x6577e4
imul edx, edx, 0x1c6
add edx, 0xffff1daf
sar edx, 8
add edx, ebx
movsx ebx, cx
cmp edx, 0xff
jle 0x6576e4
mov edx, 0xff
jmp 0x6576ec
test edx, edx
jl 0x6577d4
movsx ecx, dx
mov eax, dword [esp + 0x68]
mov edx, dword [eax + 0x58]
cmp edx, 6
je 0x657774
cmp edx, 3
je 0x65772f
mov eax, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
add esi, eax
cmp esi, edx
jl 0x657624
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x3c]
inc edx
cmp edx, eax
jl 0x657606
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
mov byte [ebp + esi], al
mov eax, dword [edx + 0x3c]
mov edi, dword [esp + 0x44]
imul eax, edi
mov ebp, dword [esp + 0x48]
add eax, ebp
mov byte [esi + eax + 1], bl
mov eax, dword [edx + 0x3c]
imul eax, edi
add ebp, eax
mov byte [esi + ebp + 2], cl
mov edx, dword [edx + 0x30]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], edx
imul edx, eax
mov dword [esp + 0x40], edx
jmp 0x657704
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x68]
movsx eax, ax
movsx ebx, bx
movsx ecx, cx
mov edi, dword [esp + 0x44]
neg al
add al, 0xff
mov byte [ebp + esi], al
mov eax, dword [edx + 0x3c]
imul eax, edi
mov ebp, dword [esp + 0x48]
add eax, ebp
neg bl
neg cl
add bl, 0xff
add cl, 0xff
mov byte [esi + eax + 1], bl
mov eax, dword [edx + 0x3c]
imul eax, edi
add ebp, eax
mov byte [esi + ebp + 2], cl
mov edx, dword [edx + 0x30]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x4c], edx
imul edx, eax
mov dword [esp + 0x40], edx
jmp 0x657704
xor edx, edx
jmp 0x6576ec
xor ecx, ecx
jmp 0x6576bc
xor edx, edx
jmp 0x65767c
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
jge 0x657727
mov ebx, dword [esp + 0x38]
lea edx, [ebx + ebx*2]
mov ebx, dword [esp + 0x30]
lea esi, [ebx + ebx*2]
cmp esi, edx
jge 0x65794a
mov dword [esp + 0x50], ecx
lea esi, [esi]
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
imul edx, dword [edi + 0x3c]
add edx, eax
movzx ebx, byte [edx + esi + 2]
movzx ecx, byte [edx + esi]
movsx ebx, bx
movsx ecx, cx
movzx ebp, byte [edx + esi + 1]
imul eax, ebx, 0x167
mov dword [esp + 0x44], ecx
add eax, 0xffff4d0b
sar eax, 8
add ecx, eax
cmp ecx, 0xff
jle 0x657884
mov ecx, 0xff
jmp 0x65788c
test ecx, ecx
jl 0x657974
imul ebx, ebx, 0xffffff49
movsx ecx, cx
mov eax, ecx
mov ecx, ebp
movsx ecx, cx
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x44]
imul ebp, ecx, 0xffffffa8
lea ebx, [ebp + ebx + 0x87f6]
sar ebx, 8
add ebx, eax
cmp ebx, 0xff
jle 0x6578c4
mov ebx, 0xff
jmp 0x6578cc
test ebx, ebx
jl 0x657964
imul ecx, ecx, 0x1c6
add ecx, 0xffff1daf
movsx ebx, bx
sar ecx, 8
add ecx, eax
cmp ecx, 0xff
jle 0x6578f4
mov ecx, 0xff
jmp 0x6578fc
test ecx, ecx
jl 0x657984
movsx ecx, cx
mov eax, dword [edi + 0x34]
cmp eax, 2
je 0x657994
mov eax, dword [esp + 0x4c]
mov byte [edx + esi], al
mov eax, dword [edi + 0x3c]
mov ebp, dword [esp + 0x50]
imul eax, ebp
mov edx, dword [esp + 0x48]
add eax, edx
mov byte [esi + eax + 1], bl
mov eax, dword [edi + 0x3c]
imul eax, ebp
add edx, eax
mov byte [esi + edx + 2], cl
mov eax, dword [esp + 0x38]
add esi, 3
lea edx, [eax + eax*2]
cmp esi, edx
jl 0x657834
mov ecx, ebp
mov eax, dword [esp + 0x3c]
inc ecx
cmp ecx, eax
jl 0x65781b
jmp 0x657727
xor ebx, ebx
jmp 0x6578cc
xor ecx, ecx
jmp 0x65788c
xor ecx, ecx
jmp 0x6578fc
mov byte [edx + esi], cl
mov eax, dword [edi + 0x3c]
mov ebp, dword [esp + 0x50]
mov edx, dword [esp + 0x48]
imul eax, ebp
add eax, edx
mov byte [esi + eax + 1], bl
mov eax, dword [edi + 0x3c]
mov ecx, dword [esp + 0x4c]
imul eax, ebp
add edx, eax
mov byte [esi + edx + 2], cl
jmp 0x657932