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

Disassembly:
sub esp, 0x20c
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 0xfc]
mov byte [esi + 0x180], bl
cmp eax, ebx
jne 0x416b3a
cmp byte [esi + 0x100], bl
je 0x416b3a
xor eax, eax
jmp 0x416b3f
mov eax, 1
push str.No_valid_tripod
push eax
call fcn.004015b0
mov eax, dword [0x5fae98]
add esp, 8
cmp eax, ebx
jne 0x4176fd
lea eax, [esi + 8]
lea edi, [esi + 0x1e4]
mov ecx, dword [eax]
mov dword [esp + 0x114], ecx
mov ecx, edi
mov edx, dword [eax + 4]
mov ebp, dword [ecx]
mov dword [esp + 0x118], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x11c], eax
lea eax, [esi + 0x204]
mov edx, eax
mov dword [edx], ebp
mov ebp, dword [ecx + 4]
mov dword [edx + 4], ebp
mov ebp, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
mov dword [edx + 8], ebp
mov dword [edx + 0xc], ecx
mov ecx, dword [esi + 0x2a0]
cmp ecx, 7
jne 0x416bed
lea eax, [esi + 0x1f4]
mov ecx, edi
mov edx, eax
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov edx, dword [edx + 0xc]
mov dword [ecx + 0xc], edx
mov edx, dword [eax]
lea ecx, [esi + 0x214]
mov dword [esi + 0x214], edx
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
jmp 0x416c03
push edi
lea ecx, [esi + 0x1f4]
push 0x3ff
push ecx
push eax
call fcn.0047cac0
add esp, 0x10
mov eax, dword [esi + 0x2a0]
cmp eax, 4
je 0x4176e1
cmp eax, 5
je 0x4176e1
cmp eax, 7
je 0x4176e1
mov edx, dword [0x54885c]
lea eax, [esp + 0x1dc]
neg edx
push eax
push edi
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x128], ebx
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], edx
mov dword [esp + 0x6c], 0xa0
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
call fcn.0047c7f0
lea ecx, [esp + 0x1e4]
push ecx
call fcn.0046d7b0
lea edx, [esp + 0x12c]
push edx
call fcn.0046d870
call fcn.0046da40
lea eax, [esp + 0x30]
push eax
call fcn.0046d790
lea ecx, [esp + 0x28]
lea edx, [esp + 0x34]
push ecx
push edx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.00470430
add esp, 0x1c
lea eax, [esp + 0x3c]
mov ebp, 0xc
lea ecx, [esp + 0x20]
push eax
mov dword [esp + 0x40], ebp
call fcn.004e7680
lea ecx, [esp + 0x64]
push ecx
call fcn.0046d870
call fcn.0046da40
lea edx, [esp + 0x68]
push edx
call fcn.0046d790
add esp, 8
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x64]
mov dword [esp + 0x3c], ebp
push eax
call fcn.004e7680
mov eax, dword [esi + 0x2a0]
mov byte [esp + 0x13], bl
cmp eax, 0x10
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov word [esp + 0xe8], bx
mov word [esp + 0xea], bx
mov word [esp + 0xec], bx
mov dword [esp + 0xd8], ebx
je 0x4173b6
cmp eax, 0x11
je 0x4173b6
mov eax, dword [esi + 0x104]
mov edi, dword [0x56f260]
mov ecx, dword [esi + 0x108]
mov edx, dword [0x56f264]
add eax, edi
mov edi, dword [0x56f268]
add ecx, edx
mov edx, dword [esi + 0x10c]
add edx, edi
mov edi, dword [esp + 0x14]
shl edi, 8
mov dword [esp + 0x70], eax
add edi, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x74], ecx
add edi, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x7c], edi
mov edi, dword [esp + 0x24]
shl eax, 8
add eax, edi
mov dword [esp + 0x78], edx
add eax, ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
shl ecx, 8
add ecx, eax
add ecx, edx
lea edx, [esp + 0x70]
push edx
mov dword [esp + 0x88], ecx
call fcn.004524c0
lea eax, [esp + 0x74]
push 1
push eax
mov dword [0x5fbedc], 1
call fcn.004549a0
mov eax, dword [esp + 0xe4]
add esp, 0xc
cmp eax, ebx
mov dword [0x5fbedc], ebx
je 0x4173b6
movsx eax, word [esp + 0xec]
movsx ecx, word [esp + 0xea]
imul eax, dword [esp + 0x1c]
movsx edx, word [esp + 0xe8]
imul ecx, dword [esp + 0x18]
imul edx, dword [esp + 0x14]
add eax, ecx
mov byte [esp + 0x13], 1
add eax, edx
neg eax
mov ecx, eax
sar ecx, 0x1f
mov edx, ecx
xor edx, eax
mov eax, 0x1000
sub edx, ecx
sar edx, 0xc
sub eax, edx
mov edx, dword [0x54885c]
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 5
mov eax, ecx
mov ecx, dword [esp + 0xb0]
sar eax, 0xc
add eax, 0x20
mov dword [esp + 0x3c], eax
add eax, edx
cmp ecx, eax
jle 0x416eb2
mov byte [esp + 0x13], bl
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
lea edi, [esi + 0x1b8]
mov dword [edi], eax
mov dword [edi + 4], ecx
lea eax, [esp + 0x14]
mov dword [edi + 8], edx
lea ecx, [esp + 0x3c]
push eax
lea edx, [esp + 0x44]
push ecx
push edx
call fcn.004e77d0
add esp, 0xc
mov ecx, edi
push eax
call fcn.004e75c0
cmp byte [esp + 0x13], bl
je 0x4173b6
mov cx, word [esp + 0xea]
mov eax, dword [0x6a9038]
cmp cx, 0xf5d8
jl 0x4172b7
cmp cx, 0xd48
jg 0x4172b7
cmp byte [eax + 0x8e8], bl
jne 0x4172b7
mov ecx, dword [eax + 0x68]
mov edx, dword [eax + 0x60]
or ecx, edx
je 0x4172b7
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x138], edx
mov edx, dword [edi]
mov dword [esp + 0x13c], eax
mov eax, dword [esi + 0x1bc]
mov dword [esp + 0x144], edx
mov dword [esp + 0x140], ecx
mov ecx, dword [esi + 0x1c0]
lea edx, [esp + 0x138]
mov dword [esp + 0x150], ebx
push edx
mov dword [esp + 0x158], ebx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x160], ebx
mov dword [esp + 0x164], ebx
mov dword [esp + 0x168], ebx
mov dword [esp + 0x1a8], ebx
mov dword [esp + 0x1ac], ebx
mov dword [esp + 0x1b0], ebx
mov word [esp + 0x1b4], bx
mov word [esp + 0x1b6], bx
mov word [esp + 0x1b8], bx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x150], ecx
call fcn.004524c0
lea eax, [esp + 0x13c]
push 1
push eax
mov dword [0x5fbedc], 1
call fcn.004549a0
mov eax, dword [esp + 0x1ac]
add esp, 0xc
cmp eax, ebx
mov dword [0x5fbedc], ebx
je 0x4172b7
mov cx, word [esp + 0x1b2]
cmp cx, 0xf5d8
jl 0x4172b7
cmp cx, 0xd48
jg 0x4172b7
movsx eax, word [esp + 0x1b4]
movsx edx, word [esp + 0xec]
imul eax, edx
movsx edx, word [esp + 0xea]
movsx ecx, cx
imul ecx, edx
movsx edx, word [esp + 0xe8]
sar eax, 0xc
sar ecx, 0xc
add eax, ecx
movsx ecx, word [esp + 0x1b0]
imul ecx, edx
sar ecx, 0xc
add eax, ecx
mov ecx, eax
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
cmp eax, 0x800
jge 0x4172b7
mov ecx, dword [0x6a9038]
call fcn.004c6aa0
mov edi, eax
mov eax, dword [0x548858]
and eax, 0xfff
mov dword [esp + 0x58], ebx
shl eax, 2
mov word [esp + 0x2e], di
movsx ecx, word [eax + 0x610c48]
movsx edx, word [eax + 0x610c4a]
mov ax, word [esi + 0x234]
mov dword [esp + 0x60], edx
neg ecx
mov word [esp + 0x2c], ax
lea edx, [esp + 0x1dc]
mov dword [esp + 0x5c], ecx
mov cx, word [esi + 0x238]
lea eax, [esp + 0x2c]
push edx
push eax
mov word [esp + 0x38], cx
call fcn.0046e730
lea ecx, [esp + 0x1e4]
push ecx
call fcn.0046d7b0
lea edx, [esp + 0x64]
push edx
call fcn.0046d870
call fcn.0046da40
lea eax, [esp + 0x68]
push eax
call fcn.0046d790
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x30]
mov dword [esp + 0x60], eax
mov eax, dword [0x54885c]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x68], edx
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], eax
lea edx, [esp + 0x6c]
push ecx
lea eax, [esp + 0x144]
push edx
push eax
call fcn.004e77a0
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x58]
mov edx, dword [eax + 4]
push ecx
mov dword [esp + 0x48], edx
lea edx, [esp + 0x44]
mov eax, dword [eax + 8]
push edx
mov dword [esp + 0x50], eax
lea eax, [esp + 0x154]
push eax
mov dword [esp + 0x64], 0xc
call fcn.004e7840
mov ecx, dword [eax]
mov dword [esp + 0x40], ecx
lea ecx, [esp + 0x40]
mov edx, dword [eax + 4]
push ecx
mov dword [esp + 0x48], edx
lea edx, [esp + 0x44]
mov eax, dword [eax + 8]
push edx
mov dword [esp + 0x50], eax
call fcn.00470430
mov eax, dword [esi + 0x104]
mov ecx, dword [0x56f260]
add eax, ecx
mov dword [esp + 0x16c], eax
mov ecx, dword [esi + 0x108]
mov edx, dword [0x56f264]
mov eax, dword [0x56f268]
add ecx, edx
mov edx, dword [esi + 0x10c]
mov dword [esp + 0x170], ecx
mov ecx, dword [esp + 0x54]
add edx, eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x174], edx
mov edx, dword [esp + 0xa8]
add eax, ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x58]
add eax, edx
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x17c], eax
lea eax, [esp + 0x16c]
add edx, ecx
push eax
mov dword [esp + 0x184], edx
call fcn.004524c0
lea ecx, [esp + 0x170]
push 1
push ecx
mov dword [0x5fbedc], 1
call fcn.004549a0
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1e0]
add esp, 0x40
cmp eax, ebx
mov dword [0x5fbedc], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
je 0x4173a5
mov byte [esp + 0x13], 1
mov ebp, 0xc
mov ecx, dword [esi + 0x1b8]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
sub ecx, edx
mov edx, dword [esi + 0x1bc]
sub edx, eax
mov eax, dword [esi + 0x1c0]
mov dword [esp + 0x2c], ecx
sub eax, edi
lea ecx, [esp + 0x2c]
mov byte [esi + 0x180], 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
call fcn.004e74a0
mov ecx, dword [esi + 0x1d0]
mov dword [esi + 0x1d4], eax
cmp ecx, eax
je 0x417316
sub eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov dword [esi + 0x1d0], eax
lea ecx, [esp + 0x38]
mov dword [esp + 0x38], ebp
push ecx
lea ecx, [esp + 0x30]
call fcn.004e7650
lea edx, [esp + 0x2c]
lea eax, [esp + 0x2c]
push edx
push eax
call fcn.00470430
mov eax, dword [esi + 0x1d0]
mov edi, dword [esi + 0x104]
mov ecx, eax
mov edx, dword [0x56f260]
imul ecx, dword [esp + 0x1c]
add ecx, edi
mov ebp, dword [0x56f264]
add ecx, edx
mov edx, eax
imul edx, dword [esp + 0x20]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x108]
add edx, ecx
mov ecx, dword [esp + 0x24]
imul ecx, eax
mov edi, dword [esi + 0x10c]
add edx, ebp
mov dword [esi + 0xc], edx
mov edx, dword [0x56f268]
add ecx, edi
add esp, 8
add ecx, edx
cmp eax, 0xc8
mov dword [esi + 0x10], ecx
mov ecx, dword [0x6a9038]
jge 0x4174ac
or byte [ecx + 5], 8
jmp 0x4173bc
mov ecx, dword [0x56f3b8]
push ebx
push edi
call fcn.004178e0
mov byte [esp + 0x13], bl
mov ecx, dword [0x6a9038]
mov edx, dword [esi + 0x1e4]
lea eax, [esi + 0x214]
mov dword [esi + 0x214], edx
mov edx, dword [esi + 0x1e8]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x1ec]
mov dword [eax + 8], edx
mov edx, dword [esi + 0x1f0]
mov dword [eax + 0xc], edx
mov al, byte [esp + 0x13]
cmp al, bl
jne 0x4174e3
cmp byte [esi + 0x100], bl
je 0x4174c8
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x44], ecx
lea ecx, [esp + 0x40]
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], edx
call fcn.004e74a0
mov ecx, dword [esi + 0x1d0]
mov dword [esi + 0x1d4], eax
cmp ecx, eax
je 0x417445
sub eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, ecx
mov dword [esi + 0x1d0], eax
mov eax, dword [esi + 0x1d0]
mov edi, dword [esi + 0x104]
mov ecx, eax
mov edx, dword [0x56f260]
imul ecx, dword [esp + 0x14]
add ecx, edi
mov ebp, dword [0x56f264]
add ecx, edx
mov edx, eax
imul edx, dword [esp + 0x18]
mov dword [esi + 8], ecx
mov ecx, dword [esi + 0x108]
add edx, ecx
mov ecx, dword [esp + 0x1c]
imul ecx, eax
mov edi, dword [esi + 0x10c]
add edx, ebp
mov dword [esi + 0xc], edx
mov edx, dword [0x56f268]
add ecx, edi
add ecx, edx
cmp eax, 0xc8
mov dword [esi + 0x10], ecx
mov ecx, dword [0x6a9038]
jge 0x4174e3
or byte [ecx + 5], 8
jmp 0x4174e3
cmp byte [ecx + 0x57c], bl
je 0x4174bd
or byte [ecx + 5], 8
jmp 0x4173bc
and word [ecx + 4], 0xf7ff
jmp 0x4173bc
mov edx, dword [esi + 0x104]
mov eax, dword [esi + 0x108]
mov dword [esi + 8], edx
mov edx, dword [esi + 0x10c]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], edx
cmp byte [esi + 0xf9], bl
je 0x4176a1
lea edi, [esi + 0x184]
xor ebp, ebp
mov eax, dword [edi]
cmp eax, ebx
je 0x417537
xor edx, edx
mov dl, byte [eax + 0x1f]
cmp edx, dword [ebp + 0x56f2d0]
jne 0x41752a
xor edx, edx
mov dx, word [eax + 0x1a]
cmp edx, dword [ebp + 0x56f350]
jne 0x41752a
cmp ecx, ebx
je 0x417524
cmp dword [ecx + 0xe48], eax
je 0x41752c
and word [eax + 4], 0xf7ff
mov dword [edi], ebx
add ebp, 4
add edi, 4
cmp ebp, 0x20
jl 0x4174f7
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [esi + 0x104]
mov dword [esp + 0x74], ecx
mov ecx, dword [esi + 0x108]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x78], edx
mov edx, dword [esi + 0x10c]
lea eax, [esp + 0x70]
mov dword [esp + 0x80], ecx
push eax
mov dword [esp + 0x88], edx
call fcn.004524c0
lea ecx, [esp + 0x74]
push 1
push ecx
call fcn.004549a0
mov eax, dword [esp + 0xe4]
add esp, 0xc
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0x1000
je 0x4176a1
lea edx, [esp + 0x1fc]
lea eax, [esi + 0x214]
push edx
push eax
call fcn.0047c7f0
lea eax, [esp + 0x204]
push eax
call fcn.0046d7b0
lea ecx, [esp + 0x38]
push ecx
call fcn.0046d870
call fcn.0046da40
lea edx, [esp + 0x3c]
push edx
call fcn.0046d790
mov eax, dword [esp + 0xec]
add esp, 0x14
cmp eax, ebx
je 0x4176a1
lea ebp, [esi + 0x184]
or byte [eax + 5], 8
xor ecx, ecx
mov cl, byte [eax + 0x1f]
xor edx, edx
mov dx, word [eax + 0x1a]
mov dword [edi*4 + 0x56f2d0], ecx
mov dword [edi*4 + 0x56f350], edx
mov dword [ebp], eax
inc edi
add ebp, 4
cmp edi, 8
push str.Overflow
setb al
push eax
call fcn.004015b0
add esp, 8
cmp edi, 8
jge 0x4176a1
cmp dword [esp + 0xb4], 4
jle 0x4176a1
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x2c]
lea eax, [ecx + edx*2]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x70], eax
lea eax, [ecx + edx*2]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x74], eax
lea eax, [ecx + edx*2]
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x7c], eax
call fcn.004524c0
lea edx, [esp + 0x74]
push 1
push edx
call fcn.004549a0
mov eax, dword [esp + 0xe4]
add esp, 0xc
cmp eax, ebx
jne 0x4175fc
lea eax, [esp + 0x114]
lea ecx, [esp + 0x12c]
push eax
lea eax, [esi + 8]
push eax
push ecx
call fcn.004e7760
mov ecx, dword [eax]
lea edx, [esi + 0x60]
add esp, 0xc
mov dword [edx], ecx
mov ecx, dword [eax + 4]
pop edi
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov byte [esi + 0x1a4], bl
pop esi
pop ebp
mov dword [edx + 8], eax
pop ebx
add esp, 0x20c
ret
mov ecx, dword [edi]
mov edx, dword [edi + 4]
mov eax, dword [edi + 8]
add esi, 0x214
mov dword [esi], ecx
mov ecx, dword [edi + 0xc]
mov dword [esi + 4], edx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20c
ret