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

Disassembly:
sub esp, 0x11c
push ebx
push ebp
push esi
push edi
push 0x80
mov esi, eax
lea eax, [esp + 0x30]
push 0
push eax
mov edi, ecx
call fcn.004ad470
movsx ecx, word [esi]
movsx eax, word [edi]
movsx edx, word [esi + 2]
imul eax, ecx
movsx ecx, word [edi + 2]
mov dword [esp + 0x38], eax
imul ecx, edx
movsx edx, word [esi + 4]
movsx eax, word [edi + 4]
imul eax, edx
movsx edx, word [esi + 6]
mov dword [esp + 0x58], eax
movsx eax, word [edi + 6]
imul eax, edx
movsx edx, word [esi + 8]
movsx ebx, word [esi + 0xc]
movsx ebp, word [esi + 0xe]
mov dword [esp + 0x78], eax
movsx eax, word [edi + 8]
imul eax, edx
movsx edx, word [edi + 0xa]
mov dword [esp + 0x5c], eax
movsx eax, word [esi + 0xa]
imul edx, eax
movsx eax, word [edi + 0xc]
imul eax, ebx
movsx ebx, word [edi + 0xe]
imul ebx, ebp
movsx ebp, word [esi + 0x10]
movsx esi, word [esi + 0x12]
mov dword [esp + 0x60], ebx
movsx ebx, word [edi + 0x10]
imul ebx, ebp
movsx ebp, word [edi + 0x12]
imul ebp, esi
mov esi, eax
or esi, edx
or esi, ecx
add esp, 0xc
or esi, dword [esp + 0x2c]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x8c], ebp
je 0x4a73c6
mov esi, ecx
imul ecx, ecx, 0x31f1
sar ecx, 0x10
imul esi, esi, 0xfb15
mov edi, ecx
mov ecx, eax
imul eax, eax, 0x8e3a
imul ecx, ecx, 0xd4db
sar esi, 0x10
sar eax, 0x10
mov dword [esp + 0x1c], esi
sar ecx, 0x10
sub esi, ecx
neg eax
imul esi, esi, 0xb505
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
sub edi, eax
mov eax, dword [esp + 0x1c]
imul edi, edi, 0xb505
add ecx, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
imul eax, eax, 0xb505
mov ecx, edx
imul edx, edx, 0x61f8
sar edx, 0x10
imul ecx, ecx, 0xec83
mov dword [esp + 0x10], edx
sar eax, 0x10
sar ecx, 0x10
sar esi, 0x10
mov edx, eax
sub edx, ecx
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x10]
add ecx, eax
mov dword [esp + 0x24], ecx
lea ecx, [esi + eax]
sar edi, 0x10
sub eax, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x20], ecx
mov ecx, edi
add edi, edx
sub ecx, edx
mov edx, dword [esp + 0x24]
add esi, edx
sub edx, dword [esp + 0x18]
movsx esi, si
movsx edx, dx
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], esi
lea esi, [edx + edi]
sub edx, edi
movsx edx, dx
movsx esi, si
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x14]
lea edi, [esi + edx]
sub edx, esi
movsx edx, dx
mov dword [esp + 0x3c], edx
lea edx, [ecx + eax]
sub eax, ecx
movsx edi, di
movsx edx, dx
movsx eax, ax
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
mov eax, dword [esp + 0x58]
mov edx, edi
or edx, ecx
or edx, dword [esp + 0x4c]
or edx, eax
je 0x4a74e9
mov esi, eax
imul eax, eax, 0x8e3a
mov edx, ecx
imul esi, esi, 0xd4db
imul ecx, ecx, 0x31f1
imul edx, edx, 0xfb15
sar eax, 0x10
neg eax
mov dword [esp + 0x10], eax
sar edx, 0x10
sar esi, 0x10
sar ecx, 0x10
mov eax, edx
sub eax, esi
add esi, edx
imul eax, eax, 0xb505
mov edx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
sub ecx, dword [esp + 0x10]
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x14]
imul ecx, ecx, 0xb505
add edx, esi
mov esi, edi
imul edi, edi, 0x61f8
mov dword [esp + 0x14], edx
imul esi, esi, 0xec83
mov edx, dword [esp + 0x4c]
imul edx, edx, 0xb505
sar edi, 0x10
mov dword [esp + 0x10], edi
sar eax, 0x10
sar edx, 0x10
sar esi, 0x10
mov edi, edx
sub edi, esi
add esi, edx
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x10]
sar ecx, 0x10
mov dword [esp + 0x24], esi
lea esi, [eax + edx]
sub edx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], esi
mov esi, ecx
add ecx, edi
sub esi, edi
mov edi, dword [esp + 0x18]
add edi, eax
sub eax, dword [esp + 0x18]
movsx edi, di
movsx eax, ax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x4c], edi
lea edi, [eax + ecx]
sub eax, ecx
movsx ecx, ax
mov eax, dword [esp + 0x1c]
movsx edi, di
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], edi
lea edi, [ecx + eax]
sub eax, ecx
movsx eax, ax
lea ecx, [esi + edx]
mov dword [esp + 0x5c], eax
movsx eax, cx
sub edx, esi
movsx edi, di
movsx ecx, dx
mov dword [esp + 0x58], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], ecx
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x78]
mov edx, ebx
or edx, dword [esp + 0x6c]
or edx, edi
or edx, eax
je 0x4a75fd
mov esi, eax
imul eax, eax, 0x8e3a
mov edx, ebx
imul esi, esi, 0xd4db
imul ebx, ebx, 0x31f1
imul edx, edx, 0xfb15
sar eax, 0x10
neg eax
mov dword [esp + 0x10], eax
sar edx, 0x10
sar esi, 0x10
mov eax, edx
sub eax, esi
add esi, edx
imul eax, eax, 0xb505
mov edx, dword [esp + 0x10]
sar ebx, 0x10
add edx, ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x6c]
mov esi, edi
imul edi, edi, 0x61f8
imul edx, edx, 0xb505
imul esi, esi, 0xec83
mov ecx, ebx
sub ecx, dword [esp + 0x10]
sar eax, 0x10
imul ecx, ecx, 0xb505
sar edi, 0x10
sar edx, 0x10
lea ebx, [eax + edx]
sar esi, 0x10
mov dword [esp + 0x10], edi
sar ecx, 0x10
mov edi, edx
sub edi, esi
add esi, edx
sub edx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ebx
mov ebx, ecx
add ecx, eax
mov eax, dword [esp + 0x18]
add eax, esi
sub esi, dword [esp + 0x18]
sub ebx, dword [esp + 0x10]
movsx eax, ax
mov dword [esp + 0x6c], eax
movsx eax, si
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x20]
lea esi, [eax + ecx]
sub eax, ecx
movsx ecx, ax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x74], ecx
lea ecx, [eax + edi]
movsx ecx, cx
sub edi, eax
movsx eax, di
mov dword [esp + 0x78], ecx
lea ecx, [ebx + edx]
mov dword [esp + 0x7c], eax
movsx eax, cx
sub edx, ebx
movsx esi, si
movsx ecx, dx
mov dword [esp + 0x70], esi
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x90]
mov edi, dword [esp + 0x94]
mov eax, dword [esp + 0x98]
mov edx, ebp
or edx, ecx
or edx, edi
or edx, eax
je 0x4a771f
mov esi, eax
imul eax, eax, 0x8e3a
imul ebp, ebp, 0xb505
mov edx, ecx
imul ecx, ecx, 0x31f1
imul esi, esi, 0xd4db
imul edx, edx, 0xfb15
sar eax, 0x10
neg eax
mov dword [esp + 0x10], eax
sar edx, 0x10
mov eax, edx
sar ecx, 0x10
sar esi, 0x10
sub eax, esi
add esi, edx
imul eax, eax, 0xb505
mov edx, dword [esp + 0x10]
mov ebx, ecx
sub ecx, dword [esp + 0x10]
add edx, ebx
mov dword [esp + 0x14], edx
imul ecx, ecx, 0xb505
mov edx, edi
imul edi, edi, 0x61f8
imul edx, edx, 0xec83
sar eax, 0x10
sar edx, 0x10
sar ebp, 0x10
mov dword [esp + 0x18], esi
sar edi, 0x10
mov esi, ebp
sub esi, edx
add edx, ebp
mov dword [esp + 0x10], edi
lea edi, [eax + ebp]
sub ebp, eax
mov eax, dword [esp + 0x10]
sar ecx, 0x10
mov ebx, ecx
sub ebx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x18]
add eax, edx
sub edx, dword [esp + 0x18]
movsx eax, ax
movsx edx, dx
mov dword [esp + 0x8c], eax
lea eax, [edi + ecx]
sub edi, ecx
mov dword [esp + 0xa8], edx
movsx edx, ax
movsx eax, di
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x14]
lea ecx, [eax + esi]
sub esi, eax
mov dword [esp + 0x90], edx
movsx edx, cx
movsx eax, si
lea ecx, [ebx + ebp]
sub ebp, ebx
mov dword [esp + 0x98], edx
mov dword [esp + 0x9c], eax
movsx edx, cx
movsx eax, bp
mov dword [esp + 0xa0], edx
mov dword [esp + 0xa4], eax
mov ecx, dword [esp + 0x130]
lea edi, [esp + 0x8c]
add ecx, 0x10
mov dword [esp + 0x1c], edi
mov dword [esp + 0x24], 8
lea esp, [esp]
mov esi, dword [edi - 0x60]
mov ebp, dword [edi - 0x20]
mov edx, dword [edi - 0x40]
mov eax, dword [edi]
mov ebx, esi
or ebx, ebp
or ebx, edx
or ebx, eax
je 0x4a787d
mov edi, edx
imul edx, edx, 0x31f1
imul esi, esi, 0xb505
imul edi, edi, 0xfb15
mov ebx, eax
imul eax, eax, 0x8e3a
imul ebx, ebx, 0xd4db
sar edi, 0x10
sar edx, 0x10
mov dword [esp + 0x14], edx
mov edx, edi
sar eax, 0x10
sar ebx, 0x10
sub edx, ebx
add ebx, edi
imul edx, edx, 0xb505
neg eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
imul eax, eax, 0xb505
mov ebx, dword [esp + 0x14]
add edi, ebx
mov dword [esp + 0x14], edi
mov edi, ebp
imul ebp, ebp, 0x61f8
imul edi, edi, 0xec83
sar eax, 0x10
mov ebx, eax
sar ebp, 0x10
sub ebx, ebp
sar edi, 0x10
mov dword [esp + 0x28], ebx
sar edx, 0x10
sar esi, 0x10
mov ebx, ebp
add ebx, eax
lea ebp, [edx + esi + 8]
mov dword [esp + 0x20], ebx
lea ebx, [edi + esi + 8]
mov eax, esi
sub eax, edi
sub esi, edx
mov edx, dword [esp + 0x18]
lea edi, [ebx + edx]
sar edi, 4
sub ebx, edx
mov edx, dword [esp + 0x20]
mov word [ecx - 0x10], di
lea edi, [edx + ebp]
sar edi, 4
sub ebp, edx
mov edx, dword [esp + 0x14]
add eax, 8
mov word [ecx], di
lea edi, [eax + edx]
sub eax, edx
sar eax, 4
add esi, 8
mov word [ecx + 0x30], ax
mov eax, dword [esp + 0x28]
lea edx, [esi + eax]
sar edi, 4
sar ebx, 4
sar ebp, 4
sar edx, 4
sub esi, eax
sar esi, 4
mov word [ecx + 0x20], di
mov edi, dword [esp + 0x1c]
mov word [ecx + 0x60], bx
mov word [ecx + 0x10], bp
mov word [ecx + 0x40], dx
mov word [ecx + 0x50], si
add edi, 4
add ecx, 2
sub dword [esp + 0x24], 1
mov dword [esp + 0x1c], edi
jne 0x4a7740
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret
xor eax, eax
mov word [ecx - 0x10], ax
mov word [ecx + 0x60], ax
mov word [ecx], ax
mov word [ecx + 0x10], ax
mov word [ecx + 0x20], ax
mov word [ecx + 0x30], ax
mov word [ecx + 0x40], ax
mov word [ecx + 0x50], ax
jmp 0x4a785d