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

Disassembly:
sub esp, 0x78
push ebx
push ebp
push esi
mov esi, dword [esp + 0x98]
mov ebp, 4
push edi
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x28]
mov dword [esp + 0x44], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi + 0xc]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esi + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x14], edx
lea edi, [eax*4]
lea ebx, [eax + eax]
mov dword [esp + 0x3c], ebp
xor ecx, ecx
mov edx, dword [esp + 0x98]
add ecx, 4
lea edx, [ebp + edx - 4]
movsx ebp, word [ebp + 0x1008cf78]
movsx eax, word [edi + edx]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebp
movsx eax, word [ebx + edx]
movsx edx, word [edx]
shl eax, 1
mov dword [esp + 0x24], edx
lea ebp, [eax + edx*2]
add edx, ebp
mov ebp, dword [esp + 0x28]
sub edx, ebp
imul edx, dword [esp + 0x40]
shl edx, 1
mov dword [esp + ecx + 0x78], edx
mov edx, ebp
mov ebp, dword [esp + 0x24]
add edx, ebp
mov ebp, dword [esp + 0x3c]
sub edx, eax
add ebp, 2
imul edx, dword [esp + 0x40]
mov dword [esp + ecx + 0x64], edx
cmp ecx, 0xc
mov dword [esp + 0x3c], ebp
jl 0x100228b2
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x2c], 1
lea edx, [ecx + eax*2]
mov ecx, dword [esp + 0xa0]
add eax, edx
mov edx, dword [esp + 0x84]
movsx ebp, word [ecx]
add eax, edx
shl eax, 1
cdq
idiv ebp
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x70]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
lea edx, [edx + eax*2]
add eax, edx
add eax, ebp
movsx ebp, word [ecx + 2]
shl eax, 1
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x80]
mov word [edx], ax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
sub eax, ebp
movsx ebp, word [ecx + 4]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
sub eax, ebp
movsx ebp, word [ecx + 6]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
mov word [edx], ax
mov eax, 2
add edx, eax
add ebp, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x80]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x7c]
neg edx
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x68]
add ebp, eax
neg edx
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x70]
add ebp, eax
mov eax, dword [esp + 0x98]
neg edx
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x68], edx
mov edx, dword [esi + 4]
add eax, 4
neg ebp
dec edx
mov dword [esp + 0x1c], eax
cmp edx, 1
mov dword [esp + 0x7c], ebp
jbe 0x10022bd7
mov ebp, 4
xor edx, edx
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x1c]
add edx, 4
lea esi, [ebp + eax - 4]
movsx ebp, word [ebp + 0x1008cf78]
movsx eax, word [edi + esi]
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ebp
movsx eax, word [ebx + esi]
movsx esi, word [esi]
shl eax, 1
mov dword [esp + 0x24], esi
lea ebp, [eax + esi*2]
add esi, ebp
mov ebp, dword [esp + 0x28]
sub esi, ebp
imul esi, dword [esp + 0x40]
shl esi, 1
mov dword [esp + edx + 0x78], esi
mov esi, ebp
mov ebp, dword [esp + 0x24]
add esi, ebp
mov ebp, dword [esp + 0x3c]
sub esi, eax
add ebp, 2
imul esi, dword [esp + 0x40]
mov dword [esp + edx + 0x64], esi
cmp edx, 0xc
mov dword [esp + 0x3c], ebp
jl 0x10022a42
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
lea edx, [esi + esi*2]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x80]
add eax, ebp
mov ebp, dword [esp + 0x84]
add eax, edx
add eax, ebp
movsx ebp, word [ecx]
cdq
idiv ebp
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x6c]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x64]
add eax, edx
mov edx, dword [esp + 0x70]
add eax, ebp
movsx ebp, word [ecx + 2]
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x80]
mov word [edx], ax
mov edx, dword [esp + 0x84]
mov eax, esi
sub eax, ebp
movsx ebp, word [ecx + 4]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
neg esi
mov dword [esp + 0x74], esi
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
sub eax, ebp
movsx ebp, word [ecx + 6]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
mov word [edx], ax
mov eax, 2
add ebp, eax
add edx, eax
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
add ebp, eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x68]
add ebp, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], ebp
add eax, 4
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
neg edx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x70]
neg eax
mov ebp, eax
neg edx
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x68], edx
mov esi, dword [esp + 0x9c]
mov eax, dword [esp + 0x2c]
inc eax
mov edx, dword [esi + 4]
mov dword [esp + 0x2c], eax
dec edx
cmp eax, edx
jb 0x10022a37
mov eax, dword [esp + 0x1c]
movsx edx, word [edi + eax + 2]
mov dword [esp + 0x28], edx
movsx edx, word [ebx + eax + 2]
movsx eax, word [eax + 2]
shl edx, 1
mov dword [esp + 0x5c], edx
mov dword [esp + 0x24], eax
lea edx, [edx + eax*2]
add eax, edx
mov edx, dword [esp + 0x28]
sub eax, edx
movsx edx, word [0x1008cf7e]
imul eax, edx
mov edx, dword [esp + 0x24]
shl eax, 1
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x28]
add eax, edx
mov edx, dword [esp + 0x5c]
sub eax, edx
movsx edx, word [0x1008cf7e]
imul eax, edx
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x68]
neg eax
mov dword [esp + 0x70], eax
mov edx, ebp
lea eax, [ebp + ebp*2]
mov ebp, dword [esp + 0x74]
neg edx
lea eax, [ebp + eax*2]
mov ebp, dword [esp + 0x78]
add eax, ebp
mov ebp, dword [esp + 0x80]
add eax, ebp
mov dword [esp + 0x84], edx
movsx ebp, word [ecx]
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x6c]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x64]
add eax, edx
mov edx, dword [esp + 0x70]
add eax, ebp
movsx ebp, word [ecx + 2]
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x80]
mov word [edx], ax
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x84]
sub eax, ebp
movsx ebp, word [ecx + 4]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x70]
sub eax, ebp
movsx ebp, word [ecx + 6]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x20]
mov word [edx], ax
mov edx, dword [esi]
mov eax, 1
dec edx
mov dword [esp + 0x5c], eax
cmp edx, eax
jbe 0x1002324b
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
add eax, eax
mov dword [esp + 0x40], eax
lea eax, [edx + edx]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
add eax, eax
mov dword [esp + 0x38], eax
lea eax, [edx + edx]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x98]
lea edx, [edi + eax]
mov dword [esp + 0x30], edx
mov eax, dword [esp + 0x34]
mov ebp, dword [esi + 0xc]
mov edx, dword [esi + 0x1c]
add eax, ebp
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], 0
add eax, edx
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3c]
add eax, ebp
mov esi, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
add eax, edx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x30]
lea eax, [eax + esi - 4]
movsx edx, word [edi + eax]
movsx ebp, word [ebx + eax]
movsx esi, word [eax]
mov edi, eax
mov dword [esp + 0x28], ebp
sub edi, ebx
mov dword [esp + 0x24], esi
lea esi, [esi + esi*2]
movsx edi, word [edi]
add ebp, edi
add esi, ebp
shl esi, 1
mov ebp, esi
mov esi, dword [esp + 0x94]
lea edi, [esi*4]
mov esi, dword [esp + 0x2c]
sub eax, edi
add esi, 2
mov dword [esp + 0x2c], esi
movsx eax, word [eax]
sub ebp, eax
movsx eax, word [esi + 0x1008cf76]
sub ebp, edx
mov dword [esp + 0x58], eax
imul ebp, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + eax + 0x7c], ebp
mov ebp, dword [esp + 0x28]
add ebp, ebp
add eax, 4
sub edx, ebp
mov ebp, dword [esp + 0x24]
add edx, ebp
mov dword [esp + 0x1c], eax
imul edx, dword [esp + 0x58]
mov dword [esp + eax + 0x64], edx
cmp eax, 0xc
jl 0x10022d6f
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
mov eax, esi
lea edx, [edx + esi*2]
mov ebp, dword [esp + 0x70]
add eax, edx
mov dword [esp + 0x2c], 1
add eax, edi
movsx edi, word [ecx]
shl eax, 1
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov word [edx], ax
mov eax, dword [esp + 0x6c]
lea edx, [eax + edi*2]
mov eax, edi
add eax, edx
add eax, ebp
movsx ebp, word [ecx + 2]
shl eax, 1
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x80]
mov word [edx], ax
mov edx, dword [esp + 0x84]
mov eax, esi
sub eax, ebp
movsx ebp, word [ecx + 4]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
neg esi
mov dword [esp + 0x74], esi
mov word [edx], ax
mov edx, dword [esp + 0x70]
mov eax, edi
sub eax, ebp
movsx ebp, word [ecx + 6]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
neg edi
mov dword [esp + 0x60], edi
mov word [edx], ax
mov eax, 2
add ebp, eax
add edx, eax
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
add ebp, eax
mov eax, dword [esp + 0x30]
add eax, 4
mov edx, dword [esp + 0x80]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
neg eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x9c]
neg eax
mov dword [esp + 0x68], eax
mov eax, dword [edx + 4]
dec eax
mov dword [esp + 0x18], ebp
cmp eax, 1
jbe 0x100230d3
mov eax, 6
mov dword [esp + 0x58], 0
mov dword [esp + 0x54], eax
mov edx, dword [esp + 0x1c]
movsx esi, word [eax + edx - 4]
lea eax, [eax + edx - 4]
mov edx, dword [esp + 0x94]
mov ebp, eax
mov dword [esp + 0x24], esi
movsx edi, word [ebx + eax]
sub ebp, ebx
mov dword [esp + 0x28], edi
lea esi, [esi + esi*2]
movsx ebp, word [ebp]
add edi, ebp
add esi, edi
shl esi, 1
mov ebp, esi
mov esi, dword [esp + 0x94]
shl edx, 2
shl esi, 2
movsx edx, word [edx + eax]
sub eax, esi
mov esi, dword [esp + 0x58]
add esi, 4
movsx eax, word [eax]
sub ebp, eax
mov eax, dword [esp + 0x54]
sub ebp, edx
mov dword [esp + 0x58], esi
movsx edi, word [eax + 0x1008cf78]
imul ebp, edi
mov dword [esp + esi + 0x7c], ebp
mov ebp, dword [esp + 0x28]
add ebp, ebp
add eax, 2
sub edx, ebp
mov ebp, dword [esp + 0x24]
add edx, ebp
mov dword [esp + 0x54], eax
imul edx, edi
mov dword [esp + esi + 0x68], edx
cmp esi, 8
jl 0x10022f1f
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x74]
mov ebp, dword [esp + 0x80]
mov edi, dword [esp + 0x84]
lea edx, [esi + esi*2]
lea eax, [eax + edx*2]
mov edx, dword [esp + 0x78]
add eax, edx
add eax, ebp
mov ebp, dword [esp + 0x6c]
add eax, edi
movsx edi, word [ecx]
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov word [edx], ax
mov edx, dword [esp + 0x60]
lea eax, [edi + edi*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x64]
add eax, edx
mov edx, dword [esp + 0x70]
add eax, ebp
movsx ebp, word [ecx + 2]
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x80]
mov word [edx], ax
mov edx, dword [esp + 0x84]
mov eax, esi
sub eax, ebp
movsx ebp, word [ecx + 4]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x6c]
neg esi
mov dword [esp + 0x74], esi
mov word [edx], ax
mov edx, dword [esp + 0x70]
mov eax, edi
sub eax, ebp
movsx ebp, word [ecx + 6]
sub eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x10]
neg edi
mov dword [esp + 0x60], edi
mov word [edx], ax
mov eax, 2
add ebp, eax
add edx, eax
mov dword [esp + 0x10], ebp
mov ebp, dword [esp + 0x14]
add ebp, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x18]
add ebp, eax
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
add edx, 4
neg eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x70]
neg eax
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x18], ebp
mov dword [esp + 0x64], edx
inc eax
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x2c], eax
mov edx, dword [edx + 4]
dec edx
cmp eax, edx
jb 0x10022f0e
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x94]
add eax, 2
mov ebp, eax
movsx edi, word [ebx + eax]
movsx esi, word [eax]
sub ebp, ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], esi
lea esi, [esi + esi*2]
movsx ebp, word [ebp]
add edi, ebp
mov ebp, dword [esp + 0x28]
add esi, edi
mov edi, dword [esp + 0x94]
shl edx, 2
shl edi, 2
movsx edx, word [edx + eax]
sub eax, edi
add ebp, ebp
shl esi, 1
movsx eax, word [eax]
sub esi, eax
movsx eax, word [0x1008cf7e]
sub esi, edx
sub edx, ebp
mov ebp, dword [esp + 0x24]
imul esi, eax
add edx, ebp
mov ebp, dword [esp + 0x7c]
imul edx, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x6c], edx
neg eax
mov dword [esp + 0x70], eax
mov edx, ebp
lea eax, [ebp + ebp*2]
mov ebp, dword [esp + 0x74]
neg edx
lea eax, [ebp + eax*2]
mov ebp, dword [esp + 0x78]
add eax, ebp
mov dword [esp + 0x84], edx
movsx ebp, word [ecx]
add eax, esi
mov dword [esp + 0x80], esi
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x6c]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x64]
add eax, edx
mov edx, dword [esp + 0x70]
add eax, ebp
movsx ebp, word [ecx + 2]
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x70]
mov word [edx], ax
mov eax, dword [esp + 0x7c]
sub eax, esi
mov esi, dword [esp + 0x84]
sub eax, esi
movsx esi, word [ecx + 4]
cdq
idiv esi
mov edx, dword [esp + 0x18]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
movsx esi, word [ecx + 6]
sub eax, edx
sub eax, ebp
cdq
idiv esi
mov edx, dword [esp + 0x20]
mov ebp, dword [esp + 0x34]
mov esi, dword [esp + 0x38]
mov word [edx], ax
mov edx, dword [esp + 0x30]
add edx, edi
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x44]
add edx, edx
inc eax
add ebp, edx
mov edx, dword [esp + 0x48]
add edx, edx
mov dword [esp + 0x34], ebp
mov ebp, dword [esp + 0x3c]
add esi, edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x40]
add edx, edx
add ebp, edx
mov edx, dword [esp + 0x50]
add edx, edx
mov dword [esp + 0x5c], eax
add esi, edx
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], esi
mov esi, dword [esp + 0x9c]
mov edx, dword [esi]
dec edx
cmp eax, edx
jb 0x10022d2a
mov edx, eax
mov ebp, dword [esp + 0x98]
imul edx, dword [esp + 0x94]
mov dword [esp + 0x54], 0
lea edx, [ebp + edx*4]
mov ebp, dword [esi + 0xc]
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x44]
imul edx, eax
lea edx, [ebp + edx*2]
mov ebp, dword [esi + 0x1c]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x48]
imul edx, eax
lea edx, [ebp + edx*2]
mov ebp, dword [esi + 0x2c]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x4c]
imul edx, eax
lea edx, [ebp + edx*2]
mov ebp, 4
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x50]
imul edx, eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x58], ebp
lea edx, [eax + edx*2]
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x1c]
lea edx, [ebp + eax - 4]
movsx ebp, word [ebp + 0x1008cf78]
movsx eax, word [ebx + edx]
mov dword [esp + 0x28], eax
mov dword [esp + 0x50], edx
movsx eax, word [edx]
sub edx, ebx
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x28]
movsx edx, word [edx]
add edx, ebp
shl edx, 1
mov ebp, edx
mov edx, dword [esp + 0x50]
sub edx, edi
movsx edx, word [edx]
sub ebp, edx
lea edx, [eax + eax*4]
add ebp, edx
mov edx, dword [esp + 0x54]
imul ebp, dword [esp + 0x5c]
mov dword [esp + edx + 0x7c], ebp
mov ebp, dword [esp + 0x28]
sub eax, ebp
mov ebp, dword [esp + 0x58]
imul eax, dword [esp + 0x5c]
shl eax, 1
mov dword [esp + edx + 0x68], eax
add edx, 4
add ebp, 2
cmp edx, 0xc
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], edx
jl 0x100232bc
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x80]
mov ebp, dword [esp + 0x84]
mov dword [esp + 0x2c], 1
lea edx, [edx + eax*2]
add eax, edx
add eax, ebp
movsx ebp, word [ecx]
shl eax, 1
cdq
idiv ebp
mov edx, dword [esp + 0x10]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x6c]
movsx ebp, word [ecx + 2]
lea edx, [edx + eax*2]
add eax, edx
mov edx, dword [esp + 0x70]
add eax, edx
shl eax, 1
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x84]
mov word [edx], ax
mov eax, dword [esp + 0x7c]
sub eax, dword [esp + 0x80]
sub eax, ebp
movsx ebp, word [ecx + 4]
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x70]
mov word [edx], ax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x6c]
sub eax, ebp
movsx ebp, word [ecx + 6]
cdq
idiv ebp
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov word [ebp], ax
mov eax, 2
add edx, eax
add ebp, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
add edx, eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x1c]
add eax, 4
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x7c]
neg eax
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x84]
neg eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
neg eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x6c]
neg eax
mov dword [esp + 0x68], eax
mov eax, dword [esi + 4]
dec eax
mov dword [esp + 0x64], edx
cmp eax, 1
jbe 0x100235ed
mov edx, 6
mov dword [esp + 0x5c], 0
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x1c]
lea edx, [edx + eax - 4]
mov esi, edx
movsx ebp, word [ebx + edx]
movsx eax, word [edx]
sub esi, ebx
sub edx, edi
movsx esi, word [esi]
movsx edx, word [edx]
add esi, ebp
shl esi, 1
sub esi, edx
lea edx, [eax + eax*4]
add esi, edx
mov edx, dword [esp + 0x50]
sub eax, ebp
movsx edx, word [edx + 0x1008cf78]
imul esi, edx
mov dword [esp + 0x54], edx
mov dword [esp + 0x58], esi
imul eax, dword [esp + 0x54]
mov esi, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
shl eax, 1
mov dword [esp + esi + 0x80], edx
mov edx, dword [esp + 0x50]
mov dword [esp + esi + 0x6c], eax
add esi, 4
add edx, 2
cmp esi, 8
mov dword [esp + 0x50], edx
mov dword [esp + 0x5c], esi
jl 0x10023454
mov esi, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x80]
lea eax, [esi + esi*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x78]
add eax, edx
mov edx, dword [esp + 0x84]
add eax, ebp
movsx ebp, word [ecx]
add eax, edx
cdq
idiv ebp
mov edx, dword [esp + 0x10]
mov ebp, dword [esp + 0x64]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x6c]
add eax, ebp
mov ebp, dword [esp + 0x70]
add eax, edx
add eax, ebp
movsx ebp, word [ecx + 2]
cdq
idiv ebp
mov edx, dword [esp + 0x14]
mov ebp, dword [esp + 0x84]
mov word [edx], ax
mov edx, dword [esp + 0x80]
mov eax, esi
sub eax, edx
sub eax, ebp
movsx ebp, word [ecx + 4]
cdq
idiv ebp
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x70]
neg esi
mov dword [esp + 0x74], esi
mov word [edx], ax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x6c]
sub eax, ebp
movsx ebp, word [ecx + 6]
cdq
idiv ebp
mov ebp, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov word [ebp], ax
mov eax, 2
add edx, eax
add ebp, eax
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
add edx, eax
mov dword [esp + 0x20], ebp
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x18]
add edx, eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x84]
neg eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x1c]
neg eax
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x70]
add edx, 4
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x6c]
neg eax
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x9c]
inc eax
mov dword [esp + 0x2c], eax
mov edx, dword [edx + 4]
dec edx
cmp eax, edx
jb 0x10023443
mov eax, dword [esp + 0x1c]
movsx edx, word [ebx + eax + 2]
lea esi, [eax + 2]
mov dword [esp + 0x28], edx
mov edx, esi
movsx eax, word [esi]
sub edx, ebx
sub esi, edi
movsx edi, word [ecx]
movsx ebx, word [edx]
mov edx, dword [esp + 0x28]
movsx esi, word [esi]
add ebx, edx
shl ebx, 1
sub ebx, esi
lea esi, [eax + eax*4]
add ebx, esi
sub eax, edx
movsx esi, word [0x1008cf7e]
imul eax, esi
imul ebx, esi
mov edx, dword [esp + 0x68]
shl eax, 1
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x7c]
neg edx
mov esi, eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x74]
lea eax, [eax + eax*2]
neg esi
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x78]
add eax, edx
add eax, ebx
add eax, esi
cdq
idiv edi
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x64]
mov word [edx], ax
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
lea eax, [eax + eax*2]
lea eax, [edx + eax*2]
mov edx, dword [esp + 0x6c]
add eax, edi
mov edi, dword [esp + 0x70]
add eax, edx
add eax, edi
movsx edi, word [ecx + 2]
cdq
idiv edi
mov edx, dword [esp + 0x14]
pop edi
mov word [edx], ax
mov eax, dword [esp + 0x78]
sub eax, ebx
sub eax, esi
movsx esi, word [ecx + 4]
cdq
idiv esi
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x68]
mov word [edx], ax
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
sub eax, esi
movsx ecx, word [ecx + 6]
sub eax, edx
pop esi
cdq
idiv ecx
mov word [ebp], ax
pop ebp
pop ebx
add esp, 0x78
ret