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

Disassembly:
sub esp, 0x7c
mov eax, dword [esp + 0x80]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
push ebx
mov ebx, dword [esp + 0x90]
push ebp
push esi
mov esi, dword [eax + 0xc]
push edi
mov edi, dword [esp + 0x98]
lea ebp, [edi + ebx]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], edx
cmp ebp, ecx
jle 0x10072e7a
mov edi, ecx
xor ebx, ebx
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], ebx
mov ecx, dword [esp + 0xa0]
mov ebp, dword [esp + 0xa4]
add ebp, ecx
cmp ebp, esi
jle 0x10072e9b
mov ecx, esi
mov dword [esp + 0xa4], 0
cmp edx, 1
jne 0x10072ea7
mov dword [esp + 0xa8], edx
mov ebp, dword [esp + 0x94]
mov esi, dword [ebp]
cmp esi, 6
ja case.default.0x10072eba
jmp dword [esi*4 + 0x10073f20]
mov edx, dword [esp + 0xa8]
push edx
mov edx, dword [esp + 0xa8]
push edx
push ecx
push ebx
push edi
push ebp
push eax
call fcn.1003e440
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret
mov edi, dword [eax + 0x18]
mov ebx, dword [eax + 0x10]
mov eax, dword [ebp + 0x10]
mov esi, dword [ebp + 0x18]
dec edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x30], esi
mov eax, 1
mov dword [esp + 0x24], edx
js 0x10073f06
lea ebp, [edx + edi]
sub esi, edi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x74], esi
jmp 0x10072f28
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x64]
test dword [esp + 0xa8], eax
jne 0x10072f3c
add eax, eax
mov dword [esp + 0x64], eax
jmp 0x100730f5
add eax, eax
cmp dword [esp + 0x98], 0
mov dword [esp + 0x64], eax
jle 0x10072faf
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xa4]
mov esi, dword [esp + 0x98]
mov dword [esp + 0x18], eax
xor ebp, ebp
mov dword [esp + 0x60], esi
cmp ecx, eax
jge 0x10072fa5
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
imul eax, ecx
mov esi, ebx
imul esi, ecx
add esi, ebp
add eax, ebp
add esi, edx
add esi, dword [esp + 0x1c]
add eax, edx
add eax, dword [esp + 0x30]
sub edi, ecx
mov edi, edi
mov dl, byte [eax]
add eax, dword [esp + 0x28]
mov byte [esi], dl
add esi, ebx
dec edi
jne 0x10072f90
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x18]
add ebp, dword [esp + 0x10]
dec dword [esp + 0x60]
jne 0x10072f68
cmp dword [esp + 0x9c], 0
jle 0x1007302d
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
sub edi, dword [esp + 0xa4]
mov eax, edx
neg eax
dec ebp
imul ebp, edx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], edx
cmp ecx, edi
jge 0x10073025
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
imul eax, ecx
mov esi, ebx
imul esi, ecx
add esi, ebp
add eax, ebp
add esi, edx
add esi, dword [esp + 0x1c]
add eax, edx
add eax, dword [esp + 0x30]
sub edi, ecx
lea ecx, [ecx]
mov dl, byte [eax]
add eax, dword [esp + 0x28]
mov byte [esi], dl
add esi, ebx
dec edi
jne 0x10073010
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x18]
add ebp, eax
dec dword [esp + 0x60]
jne 0x10072fe7
test ecx, ecx
jle 0x1007307f
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x74]
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add esi, edi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edi
mov dword [esp + 0x58], ecx
nop
test ebp, ebp
jle 0x10073063
mov dl, byte [esi]
mov byte [edi], dl
add esi, eax
add edi, eax
dec ebp
jne 0x10073054
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x60]
add esi, dword [esp + 0x28]
add edi, ebx
dec dword [esp + 0x58]
mov dword [esp + 0x60], edi
mov dword [esp + 0x5c], esi
jne 0x10073050
mov edi, dword [esp + 0xa4]
test edi, edi
jle 0x100730f5
mov esi, dword [esp + 0x28]
mov eax, esi
neg eax
mov dword [esp + 0x6c], eax
mov eax, ebx
neg eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
dec eax
mov edx, eax
imul eax, ebx
imul edx, esi
mov esi, dword [esp + 0x24]
add edx, esi
add edx, dword [esp + 0x30]
add eax, esi
add eax, dword [esp + 0x1c]
mov dword [esp + 0x60], edi
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x14], 0
jle 0x100730e3
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x14]
mov esi, edx
mov al, byte [esi]
mov byte [edi], al
mov eax, dword [esp + 0x10]
add esi, eax
add edi, eax
dec ebp
jne 0x100730d4
mov eax, dword [esp + 0x70]
add dword [esp + 0x2c], eax
add edx, dword [esp + 0x6c]
dec dword [esp + 0x60]
jne 0x100730c3
mov eax, dword [esp + 0x24]
dec dword [esp + 0x34]
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jns 0x10072f20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
mov edi, dword [ebp + 0x18]
mov ebp, dword [ebp + 0x10]
mov ebx, dword [eax + 0x10]
mov esi, dword [eax + 0x18]
shr ebp, 1
mov dword [esp + 0x28], ebp
lea ebp, [edx - 1]
shr ebx, 1
mov dword [esp + 0x24], esi
mov dword [esp + 0x30], edi
mov eax, 1
mov dword [esp + 0x34], ebp
test ebp, ebp
js 0x10073f06
lea edx, [esi + ebp*2]
sub edi, esi
mov dword [esp + 0x1c], edx
mov dword [esp + 0x74], edi
jmp 0x10073157
mov eax, dword [esp + 0x64]
test dword [esp + 0xa8], eax
jne 0x1007316b
add eax, eax
mov dword [esp + 0x64], eax
jmp 0x1007338a
add eax, eax
cmp dword [esp + 0x98], 0
mov dword [esp + 0x64], eax
jle 0x100731f8
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x60], edx
jmp 0x100731a0
cmp ecx, eax
jge 0x100731ee
mov esi, dword [esp + 0x24]
mov edx, ebx
imul edx, ecx
add edx, edi
add edx, ebp
lea esi, [esi + edx*2]
mov edx, dword [esp + 0x28]
imul edx, ecx
add edx, edi
add edx, ebp
mov ebp, dword [esp + 0x30]
lea edx, [ebp + edx*2]
sub eax, ecx
lea esp, [esp]
dec eax
mov bp, word [edx]
mov word [esi], bp
mov ebp, dword [esp + 0x28]
lea edx, [edx + ebp*2]
lea esi, [esi + ebx*2]
lea ebp, [ebx + ebx]
jne 0x100731d0
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
add edi, dword [esp + 0x10]
dec dword [esp + 0x60]
jne 0x100731a0
cmp dword [esp + 0x9c], 0
jle 0x1007328a
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xa4]
mov edx, esi
neg edx
dec edi
imul edi, esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x60], esi
cmp ecx, eax
jge 0x10073282
mov esi, dword [esp + 0x24]
mov edx, ebx
imul edx, ecx
add edx, edi
add edx, ebp
lea esi, [esi + edx*2]
mov edx, dword [esp + 0x28]
imul edx, ecx
add edx, edi
add edx, ebp
mov ebp, dword [esp + 0x30]
lea edx, [ebp + edx*2]
sub eax, ecx
lea ecx, [ecx]
dec eax
mov bp, word [edx]
mov word [esi], bp
mov ebp, dword [esp + 0x28]
lea edx, [edx + ebp*2]
lea esi, [esi + ebx*2]
lea ebp, [ebx + ebx]
jne 0x10073260
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
add edi, edx
dec dword [esp + 0x60]
jne 0x10073234
test ecx, ecx
jle 0x100732ed
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x74]
add edx, eax
mov dword [esp + 0x34], edx
mov edx, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
cmp dword [esp + 0x14], 0
jle 0x100732d0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
add esi, esi
mov dword [esp + 0x60], edi
nop
mov di, word [eax]
mov word [edx], di
add eax, esi
add edx, esi
dec dword [esp + 0x60]
jne 0x100732c0
mov edx, dword [esp + 0x5c]
lea eax, [ebx + ebx]
add edx, eax
mov eax, dword [esp + 0x28]
add eax, eax
add dword [esp + 0x34], eax
dec dword [esp + 0x58]
mov dword [esp + 0x5c], edx
jne 0x100732a6
cmp dword [esp + 0xa4], 0
jle 0x1007338a
mov edx, dword [esp + 0x28]
mov eax, edx
neg eax
add eax, eax
mov dword [esp + 0x6c], eax
mov eax, ebx
neg eax
add eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
dec eax
mov esi, eax
imul eax, ebx
imul esi, edx
mov edx, dword [esp + 0x30]
add esi, ebp
lea edx, [edx + esi*2]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
add eax, ebp
lea eax, [edx + eax*2]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
cmp dword [esp + 0x14], 0
jle 0x10073374
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x14]
add edi, edi
mov dword [esp + 0x60], eax
mov ax, word [edx]
mov word [esi], ax
add edx, edi
add esi, edi
dec dword [esp + 0x60]
jne 0x10073360
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
add dword [esp + 0x34], edx
dec dword [esp + 0x58]
mov dword [esp + 0x5c], eax
jne 0x10073345
sub dword [esp + 0x1c], 2
dec ebp
mov dword [esp + 0x34], ebp
test ebp, ebp
jns 0x10073153
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
mov esi, dword [ebp + 0x18]
mov ebp, dword [ebp + 0x10]
mov ebx, dword [eax + 0x10]
mov edx, dword [eax + 0x18]
shr ebp, 2
mov dword [esp + 0x28], ebp
mov ebp, dword [esp + 0x10]
shr ebx, 2
dec ebp
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], esi
mov eax, 1
mov dword [esp + 0x34], ebp
js 0x10073f06
lea edi, [edx + ebp*4]
sub esi, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x74], esi
jmp 0x100733f4
mov eax, dword [esp + 0x64]
test dword [esp + 0xa8], eax
jne 0x10073408
add eax, eax
mov dword [esp + 0x64], eax
jmp 0x10073648
add eax, eax
cmp dword [esp + 0x98], 0
mov dword [esp + 0x64], eax
jle 0x1007348d
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x18], eax
xor edi, edi
mov dword [esp + 0x60], edx
cmp ecx, eax
jge 0x10073483
mov esi, dword [esp + 0x24]
mov edx, ebx
imul edx, ecx
add edx, edi
add edx, ebp
lea esi, [esi + edx*4]
mov edx, dword [esp + 0x28]
imul edx, ecx
add edx, edi
add edx, ebp
mov ebp, dword [esp + 0x30]
lea edx, [ebp + edx*4]
sub eax, ecx
mov ebp, dword [edx]
mov dword [esi], ebp
mov ebp, dword [esp + 0x28]
add ebp, ebp
add ebp, ebp
add edx, ebp
lea ebp, [ebx*4]
add esi, ebp
dec eax
jne 0x10073461
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
add edi, dword [esp + 0x10]
dec dword [esp + 0x60]
jne 0x10073438
cmp dword [esp + 0x9c], 0
jle 0x1007352e
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
sub eax, dword [esp + 0xa4]
mov edx, esi
neg edx
dec edi
imul edi, esi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x60], esi
lea esp, [esp]
cmp ecx, eax
jge 0x10073526
mov esi, dword [esp + 0x24]
mov edx, ebx
imul edx, ecx
add edx, edi
add edx, ebp
lea esi, [esi + edx*4]
mov edx, dword [esp + 0x28]
imul edx, ecx
add edx, edi
add edx, ebp
mov ebp, dword [esp + 0x30]
lea edx, [ebp + edx*4]
sub eax, ecx
lea esp, [esp]
mov ebp, dword [edx]
mov dword [esi], ebp
mov ebp, dword [esp + 0x28]
add ebp, ebp
add ebp, ebp
add edx, ebp
lea ebp, [ebx*4]
add esi, ebp
dec eax
jne 0x10073500
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x34]
add edi, edx
dec dword [esp + 0x60]
jne 0x100734d0
test ecx, ecx
jle 0x100735a1
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x74]
add edx, eax
mov dword [esp + 0x34], edx
mov edx, eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
lea ebx, [ebx]
cmp dword [esp + 0x14], 0
jle 0x1007357e
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x34]
add esi, esi
add esi, esi
mov dword [esp + 0x60], edi
jmp 0x10073570
mov edi, dword [eax]
mov dword [edx], edi
add eax, esi
add edx, esi
dec dword [esp + 0x60]
jne 0x10073570
mov edx, dword [esp + 0x5c]
lea eax, [ebx*4]
add edx, eax
mov eax, dword [esp + 0x28]
add eax, eax
add eax, eax
add dword [esp + 0x34], eax
dec dword [esp + 0x58]
mov dword [esp + 0x5c], edx
jne 0x10073550
cmp dword [esp + 0xa4], 0
jle 0x10073648
mov edx, dword [esp + 0x28]
mov eax, edx
neg eax
add eax, eax
add eax, eax
mov dword [esp + 0x6c], eax
mov eax, ebx
neg eax
add eax, eax
add eax, eax
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x20]
dec eax
mov esi, eax
imul eax, ebx
imul esi, edx
mov edx, dword [esp + 0x30]
add esi, ebp
lea edx, [edx + esi*4]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x24]
add eax, ebp
lea eax, [edx + eax*4]
mov edx, dword [esp + 0xa4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edx
lea ecx, [ecx]
cmp dword [esp + 0x14], 0
jle 0x10073632
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
mov esi, eax
mov eax, dword [esp + 0x14]
add edi, edi
add edi, edi
mov dword [esp + 0x60], eax
lea ecx, [ecx]
mov eax, dword [edx]
mov dword [esi], eax
add edx, edi
add esi, edi
dec dword [esp + 0x60]
jne 0x10073620
mov eax, dword [esp + 0x5c]
add eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
add dword [esp + 0x34], edx
dec dword [esp + 0x58]
mov dword [esp + 0x5c], eax
jne 0x10073600
sub dword [esp + 0x1c], 4
dec ebp
mov dword [esp + 0x34], ebp
test ebp, ebp
jns 0x100733f0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
mov esi, dword [ebp + 0x18]
mov edi, dword [eax + 0x10]
mov ebx, dword [esp + 0x10]
mov edx, dword [eax + 0x18]
mov ebp, dword [ebp + 0x10]
shr edi, 3
shr ebp, 3
lea eax, [ebx - 1]
mov dword [esp + 0x78], edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x30], 1
test eax, eax
js 0x10073f06
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x64], ebx
mov ebx, esi
lea ebp, [edx + eax*8]
sub ebx, edx
mov dword [esp + 0x60], ebp
mov dword [esp + 0x6c], ebx
lea ecx, [ecx]
mov ebx, dword [esp + 0x30]
shl dword [esp + 0x30], 1
test dword [esp + 0xa8], ebx
je 0x10073ef2
cmp dword [esp + 0x98], 0
jle 0x100738c4
mov ebx, dword [esp + 0x20]
sub ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x18], ebx
xor ebx, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x54], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
cmp ecx, ebp
jge 0x100738b2
sub ebp, ecx
cmp ebp, 4
jl 0x10073841
mov ebp, edi
shl ebp, 5
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x1c]
shl ebp, 5
mov dword [esp + 0x4c], ebp
mov ebp, edi
imul ebp, ecx
add ebp, ebx
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x1c]
imul ebp, ecx
add ebp, ebx
add ebp, eax
lea ebp, [esi + ebp*8]
mov dword [esp + 0x5c], ebp
lea ebp, [ecx + 3]
mov dword [esp + 0x44], ebp
imul ebp, edi
add ebp, ebx
add ebp, eax
lea ebx, [edx + ebp*8]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x44]
imul ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
add ebx, ebp
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x38], ebx
lea ebx, [ecx + 2]
mov dword [esp + 0x40], ebx
imul ebx, edi
add ebx, ebp
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x40]
imul ebx, dword [esp + 0x1c]
add ebx, ebp
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x2c], ebx
lea ebx, [ecx + 1]
mov dword [esp + 0x34], ebx
imul ebx, edi
add ebx, ebp
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x34]
imul ebx, dword [esp + 0x1c]
add ebx, ebp
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x18]
sub ebx, ecx
sub ebx, 4
shr ebx, 2
inc ebx
mov dword [esp + 0x58], ebx
lea ebx, [ecx + ebx*4]
mov dword [esp + 0x24], ebx
jmp 0x100737e0
mov ebp, dword [esp + 0x5c]
fld qword [ebp]
mov ebx, dword [esp + 0x3c]
fstp qword [ebx]
mov ebx, dword [esp + 0x34]
fld qword [ebx]
mov ebx, dword [esp + 0x40]
fstp qword [ebx]
mov ebx, dword [esp + 0x2c]
fld qword [ebx]
mov ebx, dword [esp + 0x44]
fstp qword [ebx]
mov ebx, dword [esp + 0x38]
fld qword [ebx]
mov ebx, dword [esp + 0x48]
fstp qword [ebx]
mov ebx, dword [esp + 0x4c]
add dword [esp + 0x34], ebx
add dword [esp + 0x2c], ebx
add dword [esp + 0x38], ebx
add ebp, ebx
mov ebx, dword [esp + 0x50]
add dword [esp + 0x3c], ebx
add dword [esp + 0x40], ebx
add dword [esp + 0x44], ebx
add dword [esp + 0x48], ebx
dec dword [esp + 0x58]
mov dword [esp + 0x5c], ebp
jne 0x100737e0
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x18]
jge 0x100738ae
imul ebx, edi
add ebx, dword [esp + 0x28]
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x24]
imul ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x28]
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x18]
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x58], ebx
lea ecx, [ecx]
mov ebx, dword [esp + 0x5c]
fld qword [ebx]
mov ebp, dword [esp + 0x48]
fstp qword [ebp]
mov ebp, dword [esp + 0x1c]
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebx, ebp
mov dword [esp + 0x5c], ebx
lea ebx, [edi*8]
add dword [esp + 0x48], ebx
dec dword [esp + 0x58]
jne 0x10073880
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x10]
dec dword [esp + 0x54]
mov dword [esp + 0x28], ebx
jne 0x100736f3
cmp dword [esp + 0x9c], 0
jle 0x10073ad4
mov ebx, dword [esp + 0x20]
sub ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0x18], ebx
mov ebx, ebp
neg ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x14]
dec ebx
imul ebx, ebp
mov ebp, dword [esp + 0x9c]
mov dword [esp + 0x28], ebx
mov dword [esp + 0x68], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x24], ecx
cmp ecx, ebp
jge 0x10073ac2
sub ebp, ecx
cmp ebp, 4
jl 0x10073a51
mov ebp, edi
shl ebp, 5
mov dword [esp + 0x50], ebp
mov ebp, dword [esp + 0x1c]
shl ebp, 5
mov dword [esp + 0x4c], ebp
mov ebp, edi
imul ebp, ecx
add ebp, ebx
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x1c]
imul ebp, ecx
add ebp, ebx
add ebp, eax
lea ebp, [esi + ebp*8]
mov dword [esp + 0x5c], ebp
lea ebp, [ecx + 3]
mov dword [esp + 0x44], ebp
imul ebp, edi
add ebp, ebx
add ebp, eax
lea ebx, [edx + ebp*8]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x44]
imul ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x28]
add ebx, ebp
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x3c], ebx
lea ebx, [ecx + 2]
mov dword [esp + 0x40], ebx
imul ebx, edi
add ebx, ebp
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x40]
imul ebx, dword [esp + 0x1c]
add ebx, ebp
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x44], ebx
lea ebx, [ecx + 1]
mov dword [esp + 0x34], ebx
imul ebx, edi
add ebx, ebp
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x34]
imul ebx, dword [esp + 0x1c]
add ebx, ebp
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x18]
sub ebx, ecx
sub ebx, 4
shr ebx, 2
inc ebx
mov dword [esp + 0x34], ebx
lea ebx, [ecx + ebx*4]
mov dword [esp + 0x24], ebx
lea esp, [esp]
mov ebp, dword [esp + 0x5c]
fld qword [ebp]
mov ebx, dword [esp + 0x38]
fstp qword [ebx]
mov ebx, dword [esp + 0x48]
fld qword [ebx]
mov ebx, dword [esp + 0x40]
fstp qword [ebx]
mov ebx, dword [esp + 0x44]
fld qword [ebx]
mov ebx, dword [esp + 0x54]
fstp qword [ebx]
mov ebx, dword [esp + 0x3c]
fld qword [ebx]
mov ebx, dword [esp + 0x58]
fstp qword [ebx]
mov ebx, dword [esp + 0x4c]
add dword [esp + 0x48], ebx
add dword [esp + 0x44], ebx
add dword [esp + 0x3c], ebx
add ebp, ebx
mov ebx, dword [esp + 0x50]
add dword [esp + 0x38], ebx
add dword [esp + 0x40], ebx
add dword [esp + 0x54], ebx
add dword [esp + 0x58], ebx
dec dword [esp + 0x34]
mov dword [esp + 0x5c], ebp
jne 0x100739f0
mov ebx, dword [esp + 0x24]
cmp ebx, dword [esp + 0x18]
jge 0x10073abe
imul ebx, edi
add ebx, dword [esp + 0x28]
add ebx, eax
lea ebx, [edx + ebx*8]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0x24]
imul ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x28]
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x5c], ebx
mov ebx, dword [esp + 0x18]
sub ebx, dword [esp + 0x24]
mov dword [esp + 0x54], ebx
lea ecx, [ecx]
mov ebx, dword [esp + 0x5c]
fld qword [ebx]
mov ebp, dword [esp + 0x58]
fstp qword [ebp]
mov ebp, dword [esp + 0x1c]
add ebp, ebp
add ebp, ebp
add ebp, ebp
add ebx, ebp
mov dword [esp + 0x5c], ebx
lea ebx, [edi*8]
add dword [esp + 0x58], ebx
dec dword [esp + 0x54]
jne 0x10073a90
mov ebx, dword [esp + 0x28]
add ebx, dword [esp + 0x2c]
dec dword [esp + 0x68]
mov dword [esp + 0x28], ebx
jne 0x10073904
xor ebx, ebx
cmp ecx, ebx
jle 0x10073caa
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x60]
add ebp, ebx
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x6c]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x64]
add ebp, ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x70], ecx
mov edi, edi
xor ebx, ebx
cmp dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebx
jl 0x10073c13
mov ebp, dword [esp + 0x10]
mov ebx, ebp
shl ebx, 5
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x58], ebx
lea ebx, [ebp + ebp*2]
mov ebp, dword [esp + 0x28]
add ebp, ebx
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x24]
add ebp, ebx
add ebp, eax
lea ebx, [esi + ebp*8]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x40], ebx
mov ebx, dword [esp + 0x10]
lea ebp, [ebp + ebx*2]
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x24]
lea ebx, [ebp + ebx*2]
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x14]
add ebx, 0xfffffffc
shr ebx, 2
inc ebx
mov dword [esp + 0x68], ebx
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x74]
mov ebp, dword [esp + 0x58]
fld qword [ebp]
mov ebp, dword [esp + 0x54]
add dword [esp + 0x58], ebx
fstp qword [ebp]
mov ebp, dword [esp + 0x50]
fld qword [ebp]
mov ebp, dword [esp + 0x4c]
add dword [esp + 0x54], ebx
fstp qword [ebp]
mov ebp, dword [esp + 0x48]
fld qword [ebp]
mov ebp, dword [esp + 0x44]
add dword [esp + 0x50], ebx
fstp qword [ebp]
mov ebp, dword [esp + 0x40]
fld qword [ebp]
mov ebp, dword [esp + 0x3c]
add dword [esp + 0x4c], ebx
fstp qword [ebp]
add dword [esp + 0x48], ebx
add dword [esp + 0x44], ebx
add dword [esp + 0x40], ebx
add dword [esp + 0x3c], ebx
dec dword [esp + 0x68]
jne 0x10073bb1
mov ebx, dword [esp + 0x2c]
cmp ebx, dword [esp + 0x14]
jge 0x10073c77
imul ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
add ebp, ebx
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x24]
add ebp, ebx
add ebp, eax
lea ebx, [esi + ebp*8]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0x14]
sub ebx, dword [esp + 0x2c]
mov dword [esp + 0x54], ebx
jmp 0x10073c50
mov ebp, dword [esp + 0x68]
mov ebx, dword [esp + 0x58]
fld qword [ebp]
fstp qword [ebx]
mov ebx, dword [esp + 0x10]
add ebx, ebx
add ebx, ebx
add ebx, ebx
add dword [esp + 0x58], ebx
add ebp, ebx
dec dword [esp + 0x54]
mov dword [esp + 0x68], ebp
jne 0x10073c50
add dword [esp + 0x28], edi
lea ebx, [edi*8]
add dword [esp + 0x38], ebx
add dword [esp + 0x34], ebx
mov ebx, dword [esp + 0x1c]
add dword [esp + 0x24], ebx
add ebx, ebx
add ebx, ebx
add ebx, ebx
add dword [esp + 0x18], ebx
add dword [esp + 0x5c], ebx
dec dword [esp + 0x70]
jne 0x10073b10
cmp dword [esp + 0xa4], 0
jle 0x10073ef2
mov ebp, dword [esp + 0x1c]
mov ebx, ebp
neg ebx
mov dword [esp + 0x88], ebx
mov ebx, edi
neg ebx
mov dword [esp + 0x80], ebx
mov ebx, ebp
neg ebx
add ebx, ebx
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x84], ebx
mov ebx, edi
neg ebx
add ebx, ebx
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x7c], ebx
mov ebx, dword [esp + 0x20]
dec ebx
imul ebx, ebp
mov ebp, dword [esp + 0x20]
dec ebp
imul ebp, edi
mov dword [esp + 0x24], ebx
mov dword [esp + 0x28], ebp
add ebx, eax
add ebp, eax
mov dword [esp + 0x74], ebx
lea ebx, [esi + ebx*8]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x34], ebx
lea ebx, [edx + ebp*8]
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x3c], ebx
mov ebx, dword [esp + 0x10]
add ebp, ebx
lea ebp, [esi + ebp*8]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x70]
add ebp, ebx
lea ebp, [edx + ebp*8]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0xa4]
mov dword [esp + 0x74], ebp
jmp 0x10073d54
mov ebx, dword [esp + 0x10]
xor ebp, ebp
cmp dword [esp + 0x14], 4
mov dword [esp + 0x2c], ebp
jl 0x10073e53
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0x58], ebp
mov ebp, dword [esp + 0x34]
mov edi, ebx
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x28]
lea ebx, [ebx + ebx*2]
add ebp, ebx
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x24]
add ebp, ebx
add ebp, eax
lea ebx, [esi + ebp*8]
mov ebp, dword [esp + 0x28]
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x10]
lea ebp, [ebp + ebx*2]
add ebp, eax
lea ebp, [edx + ebp*8]
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x24]
lea ebx, [ebp + ebx*2]
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x4c], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x50], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x14]
add ebx, 0xfffffffc
shr ebx, 2
shl edi, 5
inc ebx
lea ebp, [ebx*4]
mov dword [esp + 0x2c], ebp
jmp 0x10073df0
mov ebp, dword [esp + 0x5c]
fld qword [ebp]
mov ebp, dword [esp + 0x58]
add dword [esp + 0x5c], edi
fstp qword [ebp]
mov ebp, dword [esp + 0x54]
fld qword [ebp]
mov ebp, dword [esp + 0x50]
add dword [esp + 0x58], edi
fstp qword [ebp]
mov ebp, dword [esp + 0x4c]
fld qword [ebp]
mov ebp, dword [esp + 0x48]
add dword [esp + 0x54], edi
fstp qword [ebp]
mov ebp, dword [esp + 0x44]
fld qword [ebp]
mov ebp, dword [esp + 0x40]
add dword [esp + 0x50], edi
fstp qword [ebp]
add dword [esp + 0x4c], edi
add dword [esp + 0x48], edi
add dword [esp + 0x44], edi
add dword [esp + 0x40], edi
dec ebx
jne 0x10073df0
mov edi, dword [esp + 0x78]
mov ebp, dword [esp + 0x2c]
cmp ebp, dword [esp + 0x14]
jge 0x10073eb7
mov ebx, ebp
imul ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
add ebp, ebx
add ebx, dword [esp + 0x24]
add ebp, eax
add ebx, eax
lea ebx, [esi + ebx*8]
mov dword [esp + 0x70], ebx
mov ebx, dword [esp + 0x14]
sub ebx, dword [esp + 0x2c]
lea ebp, [edx + ebp*8]
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x68], ebx
jmp 0x10073e90
mov ebp, dword [esp + 0x70]
mov ebx, dword [esp + 0x5c]
fld qword [ebp]
fstp qword [ebx]
mov ebx, dword [esp + 0x10]
add ebx, ebx
add ebx, ebx
add ebx, ebx
add dword [esp + 0x5c], ebx
add ebp, ebx
dec dword [esp + 0x68]
mov dword [esp + 0x70], ebp
jne 0x10073e90
mov ebx, dword [esp + 0x7c]
add dword [esp + 0x3c], ebx
add dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x80]
add dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x84]
add dword [esp + 0x34], ebx
add dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x88]
add dword [esp + 0x24], ebx
dec dword [esp + 0x74]
jne 0x10073d50
mov ebx, 8
sub dword [esp + 0x60], ebx
sub dword [esp + 0x64], ebx
dec eax
jns 0x100736b0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x7c
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x7c
ret