Function at 0x4039f0
Capabilities:
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x446663
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x740
push ebx
push ebp
push esi
push edi
mov eax, dword [esp + 0x760]
push ecx
add eax, 0xfffffff0
mov dword [esp + 0xa8], esp
xor ebx, ebx
mov esi, esp
push eax
mov dword [esp + 0x760], ebx
mov dword [esp + 0xac], eax
call fcn.00401c60
add eax, 0x10
mov dword [esi], eax
lea eax, [esp + 0x58]
add esp, 4
push eax
call fcn.00403750
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx - 0xc]
xor eax, eax
mov ecx, 0x64
lea edi, [esp + 0x2a8]
rep stosd dword es:[edi], eax
mov ecx, 0x64
lea edi, [esp + 0x5c8]
rep stosd dword es:[edi], eax
mov ecx, 0x64
lea edi, [esp + 0x438]
push 0xfa0
mov byte [esp + 0x764], 1
mov dword [esp + 0x30], edx
mov dword [esp + 0x28], 0xffffffff
rep stosd dword es:[edi], eax
call fcn.00438e3f
push 0xfa0
mov esi, eax
call fcn.00438e3f
xor ecx, ecx
mov ebp, eax
xor eax, eax
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xfc], eax
add esp, 0x10
xor edx, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], edx
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xf0], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xf4], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xf8], eax
mov dword [esp + 0x8c], edx
mov dword [esp + 0xd8], ecx
mov dword [esp + 0xfc], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x100], eax
mov dword [esp + 0xe0], ecx
mov dword [esp + 0x94], edx
mov dword [esp + 0x104], eax
mov dword [esp + 0xe4], ecx
mov dword [esp + 0x98], edx
mov dword [esp + 0x108], eax
mov dword [esp + 0x9c], edx
mov ecx, 0x3e8
mov edi, esi
mov dword [esp + 0x34], ebp
mov dword [esp + 0x10c], eax
mov dword [esp + 0xa0], edx
rep stosd dword es:[edi], eax
mov ecx, 0x3e8
mov edi, ebp
rep stosd dword es:[edi], eax
mov ecx, 0x64
lea edi, [esp + 0x110]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x770]
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
cmp ecx, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], eax
jle 0x403e49
lea esp, [esp]
mov ecx, dword [esp + 0x14]
test ecx, ecx
jl 0x404022
mov eax, dword [esp + 0x50]
cmp ecx, dword [eax - 0xc]
jg 0x404022
mov al, byte [ecx + eax]
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x3f], al
mov byte [esp + 0x40], al
mov byte [esp + 0x41], 0
call fcn.0042ac4f
add esp, 4
cmp eax, 9
jg 0x403c2f
test eax, eax
jg 0x403c42
cmp byte [esp + 0x3b], 0x30
jne 0x403e34
test eax, eax
jl 0x403e34
cmp eax, 9
jg 0x403e34
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x76c]
mov edx, dword [edx + ecx*4 + 4]
movsx edx, word [edx + eax*2]
inc ecx
add ebx, edx
cmp ecx, 2
mov dword [esp + 0x1c], ecx
mov dword [esp + ecx*4 + 0xa8], eax
jne 0x403e34
inc dword [esi + ebx*4]
movsx eax, word [edi + ebx*2]
mov ecx, dword [ebp + eax*4]
inc ecx
mov dword [ebp + eax*4], ecx
mov ecx, dword [esp + 0xa8]
mov ebx, dword [esp + ecx*4 + 0xe8]
lea eax, [ebp + eax*4]
mov eax, dword [esp + 0xac]
mov edx, dword [esp + eax*4 + 0xc0]
inc ebx
mov dword [esp + ecx*4 + 0xe8], ebx
inc edx
lea ecx, [ecx + ecx*4]
shl ecx, 1
mov dword [esp + eax*4 + 0xc0], edx
mov edx, dword [esp + 0xb0]
inc dword [esp + edx*4 + 0x7c]
lea ebx, [eax + ecx]
inc dword [esp + ebx*4 + 0x2a0]
add ecx, edx
lea ebx, [esp + ebx*4 + 0x2a0]
mov ebx, dword [esp + ecx*4 + 0x5c0]
lea ecx, [esp + ecx*4 + 0x5c0]
inc ebx
mov dword [ecx], ebx
lea ecx, [eax + eax*4]
lea ecx, [edx + ecx*2]
mov ebx, dword [esp + ecx*4 + 0x430]
lea ecx, [esp + ecx*4 + 0x430]
inc ebx
mov dword [ecx], ebx
mov ecx, dword [esp + 0x764]
cmp ecx, 6
jl 0x403e26
cmp ecx, 8
jg 0x403e26
mov ebx, dword [esp + 0x774]
mov ecx, dword [esp + 0xa8]
mov ecx, dword [ebx + ecx*4]
xor ebx, ebx
mov bx, word [ecx + eax*2]
mov cx, word [ecx + edx*2]
mov word [esp + 0x28], cx
mov ecx, dword [esp + 0x774]
mov ecx, dword [ecx + eax*4]
mov cx, word [ecx + edx*2]
mov word [esp + 0x20], cx
mov ecx, dword [esp + 0x28]
cmp bx, cx
mov dword [esp + 0x1c], ebx
jne 0x403d75
mov ebx, dword [esp + 0x20]
cmp cx, bx
movsx ecx, word [esp + 0x1c]
lea ecx, [esp + ecx*4 + 0x110]
je 0x403dda
inc dword [ecx]
movsx ecx, bx
jmp 0x403dd3
cmp bx, word [esp + 0x20]
jne 0x403d97
movsx ecx, bx
mov ebx, dword [esp + ecx*4 + 0x110]
lea ecx, [esp + ecx*4 + 0x110]
inc ebx
mov dword [ecx], ebx
movsx ecx, word [esp + 0x28]
jmp 0x403dd3
movsx ebx, word [esp + 0x1c]
mov ecx, dword [esp + 0x28]
inc dword [esp + ebx*4 + 0x110]
cmp cx, word [esp + 0x20]
lea ebx, [esp + ebx*4 + 0x110]
jne 0x403dba
movsx ecx, cx
jmp 0x403dd3
movsx ebx, cx
mov ecx, dword [esp + ebx*4 + 0x110]
lea ebx, [esp + ebx*4 + 0x110]
inc ecx
mov dword [ebx], ecx
movsx ecx, word [esp + 0x20]
lea ecx, [esp + ecx*4 + 0x110]
inc dword [ecx]
mov ecx, dword [esp + 0xa8]
cmp cx, ax
jne 0x403df6
cmp ax, dx
movsx eax, cx
lea eax, [esp + eax*4 + 0x54]
je 0x403e24
jmp 0x403e1b
cmp cx, dx
movsx ecx, cx
lea ecx, [esp + ecx*4 + 0x54]
jne 0x403e09
inc dword [ecx]
movsx eax, ax
jmp 0x403e20
cmp ax, dx
movsx eax, ax
lea eax, [esp + eax*4 + 0x54]
jne 0x403e19
inc dword [ecx]
jmp 0x403e24
inc dword [ecx]
inc dword [eax]
movsx eax, dx
lea eax, [esp + eax*4 + 0x54]
inc dword [eax]
inc dword [esp + 0x30]
mov dword [esp + 0x1c], 0xffffffff
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x403bf0
mov ecx, dword [esp + 0x764]
xor edx, edx
or eax, 0xffffffff
cmp ecx, edx
jne 0x40402c
lea ecx, [esp + 0xe8]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
mov dword [esp + 0x24], ecx
mov edi, edi
mov edx, dword [esp + 0x2c]
mov edx, dword [edx]
xor edi, edi
lea ecx, [esp + ecx + 0x2a0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edi
lea edx, [esp + 0x434]
mov dword [esp + 0x28], ecx
mov edi, dword [esp + edi*4 + 0xc0]
mov ebx, dword [esp + 0x28]
mov ebx, dword [ebx]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x24]
lea edi, [esp + edi + 0x5c4]
xor ecx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], edi
jmp 0x403ec0
mov ebx, dword [esi + eax*4 + 4]
mov edi, dword [edx - 4]
sub edi, ebx
sub edi, dword [esp + ecx*4 + 0x7c]
mov ebx, dword [esp + 0x10]
add edi, dword [ebx - 4]
sub edi, dword [esp + 0x14]
sub edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + ecx*4 + 0x80]
inc eax
mov edi, dword [edx]
sub edi, ebx
mov ebx, dword [esi + eax*4 + 4]
sub edi, ebx
sub edi, dword [esp + 0x14]
sub edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x10]
add edi, dword [ebx]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + ecx*4 + 0x84]
mov edi, dword [edx + 4]
sub edi, ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
sub edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx + 4]
sub edi, dword [esp + 0x14]
sub edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
inc eax
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + ecx*4 + 0x88]
mov edi, dword [edx + 8]
sub edi, ebx
mov ebx, dword [esi + eax*4 + 4]
sub edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx + 8]
sub edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
inc eax
sub edi, ebx
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + ecx*4 + 0x8c]
mov edi, dword [edx + 0xc]
sub edi, ebx
mov ebx, dword [esi + eax*4 + 4]
inc eax
sub edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx + 0xc]
sub edi, dword [esp + 0x14]
sub edi, dword [esp + 0x1c]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + 0x10]
add ecx, 5
add ebx, 0x14
add edx, 0x14
cmp ecx, 9
mov dword [esp + 0x10], ebx
jle 0x403ec0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
inc edi
mov ecx, 4
add ebx, ecx
cmp edi, 9
mov dword [esp + 0x18], edi
mov dword [esp + 0x28], ebx
jle 0x403e92
mov ebx, dword [esp + 0x2c]
add ebx, ecx
mov ecx, dword [esp + 0x24]
add ecx, 0x28
cmp ecx, 0x168
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], ecx
jle 0x403e70
jmp 0x405379
push 0x80070057
call fcn.00401250
cmp ecx, 1
jne 0x40422e
lea ecx, [esp + 0xe8]
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
xor edi, edi
lea ecx, [esp + ecx + 0x2a0]
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edi
lea edx, [esp + 0x434]
mov dword [esp + 0x24], ecx
jmp 0x404070
mov edi, dword [esp + edi*4 + 0xc0]
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x2c]
lea edi, [esp + edi + 0x5c4]
xor ecx, ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edi
mov ebx, dword [esp + 0x10]
mov edi, dword [edx - 4]
add edi, dword [ebx - 4]
add edi, dword [esp + 0x1c]
shl edi, 1
mov ebx, edi
mov edi, dword [esi + eax*4 + 4]
lea edi, [edi + edi*2]
sub edi, ebx
add edi, dword [esp + ecx*4 + 0x7c]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + 0x1c]
mov edi, dword [edx]
add edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx]
inc eax
shl edi, 1
mov ebx, edi
mov edi, dword [esi + eax*4 + 4]
lea edi, [edi + edi*2]
sub edi, ebx
add edi, dword [esp + ecx*4 + 0x80]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + 0x10]
mov edi, dword [edx + 4]
add edi, dword [ebx + 4]
add edi, dword [esp + 0x1c]
inc eax
shl edi, 1
mov ebx, edi
mov edi, dword [esi + eax*4 + 4]
lea edi, [edi + edi*2]
sub edi, ebx
add edi, dword [esp + ecx*4 + 0x84]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + 0x10]
mov edi, dword [edx + 8]
add edi, dword [ebx + 8]
mov ebx, dword [esp + 0x1c]
inc eax
add edi, ebx
shl edi, 1
mov ebx, edi
mov edi, dword [esi + eax*4 + 4]
inc eax
lea edi, [edi + edi*2]
sub edi, ebx
add edi, dword [esp + ecx*4 + 0x88]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov edi, dword [esi + eax*4 + 4]
mov ebx, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x20]
sub edi, ebx
mov ebx, dword [esp + 0x10]
sub edi, dword [ebx + 0xc]
mov ebx, dword [esp + 0x40]
add edi, ebx
mov dword [esp + 0x44], edi
mov edi, ebx
sub edi, dword [edx + 0xc]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x40], edi
sub edi, ebx
add edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x48], edi
mov edi, dword [esp + ecx*4 + 0x8c]
sub edi, dword [ebx + 0xc]
add edi, dword [esp + 0x40]
mov ebx, dword [esp + 0x48]
add edi, ebx
add edi, dword [esp + 0x44]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + 0x10]
add ecx, 5
add ebx, 0x14
add edx, 0x14
cmp ecx, 9
mov dword [esp + 0x10], ebx
jle 0x404096
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
inc edi
mov ecx, 4
add ebx, ecx
cmp edi, 9
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebx
jle 0x404070
mov ebx, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x2c]
add ecx, 0x28
cmp ecx, 0x168
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ecx
jle 0x404046
jmp 0x405379
cmp ecx, 2
jne 0x4043f5
mov edi, dword [esp + 0x768]
lea edx, [esp + 0x5c4]
lea ecx, [esp + 0x2a0]
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], 0xa
jmp 0x404260
mov ebx, dword [edx - 4]
mov dword [esp + 0x44], ebx
mov ebx, dword [edx]
mov dword [esp + 0x48], ebx
mov ebx, dword [edx + 4]
mov dword [esp + 0x40], ebx
mov ebx, dword [edx + 8]
mov dword [esp + 0x2c], ebx
mov ebx, dword [edx + 0xc]
mov dword [esp + 0x14], ebx
mov ebx, dword [edx + 0x10]
mov dword [esp + 0x10], ebx
mov ebx, dword [edx + 0x14]
mov dword [esp + 0x18], ebx
mov ebx, dword [edx + 0x18]
mov dword [esp + 0xb8], ebx
mov ebx, dword [edx + 0x1c]
mov edx, dword [edx + 0x20]
mov dword [esp + 0xbc], edx
mov dword [esp + 0xb4], ebx
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x434]
mov dword [esp + 0x1c], 0xa
mov ebx, dword [esi + eax*4 + 4]
mov ecx, dword [ecx]
mov ebp, dword [edx - 4]
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x44]
add ebp, ecx
mov dword [edi + eax*4 + 4], ebp
mov ebp, dword [edx]
inc eax
mov ebx, dword [esi + eax*4 + 4]
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x48]
add ebp, ecx
mov dword [edi + eax*4 + 4], ebp
mov ebp, dword [edx + 4]
inc eax
mov ebx, dword [esi + eax*4 + 4]
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x40]
add ebp, ecx
mov dword [edi + eax*4 + 4], ebp
mov ebp, dword [edx + 8]
inc eax
mov ebx, dword [esi + eax*4 + 4]
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x2c]
add ebp, ecx
mov dword [edi + eax*4 + 4], ebp
mov ebp, dword [edx + 0xc]
inc eax
mov ebx, dword [esi + eax*4 + 4]
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x14]
add ebp, ecx
mov dword [edi + eax*4 + 4], ebp
mov ebp, dword [edx + 0x10]
inc eax
mov ebx, dword [esi + eax*4 + 4]
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x10]
inc eax
add ebp, ecx
mov dword [edi + eax*4], ebp
mov ebx, dword [esi + eax*4 + 4]
mov ebp, dword [edx + 0x14]
inc eax
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0x18]
add ebp, ecx
mov dword [edi + eax*4], ebp
mov ebx, dword [esi + eax*4 + 4]
mov ebp, dword [edx + 0x18]
inc eax
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0xb8]
add ebp, ecx
mov dword [edi + eax*4], ebp
mov ebx, dword [esi + eax*4 + 4]
mov ebp, dword [edx + 0x1c]
inc eax
lea ebx, [ebx + ebx*2]
sub ebp, ebx
add ebp, dword [esp + 0xb4]
add ebp, ecx
mov dword [edi + eax*4], ebp
mov ebx, dword [esi + eax*4 + 4]
mov ebp, dword [esp + 0xbc]
sub ecx, ebx
inc eax
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 0x20]
sub ecx, ebx
sub ebp, ebx
mov ebx, dword [esp + 0x1c]
add ecx, ebp
add ecx, dword [esp + 0x4c]
mov dword [edi + eax*4], ecx
mov ecx, dword [esp + 0x24]
add ecx, 4
add edx, 0x28
dec ebx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1c], ebx
jne 0x4042c1
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x28]
add edx, 0x28
dec ebx
mov dword [esp + 0x20], edx
mov dword [esp + 0x28], ebx
jne 0x404260
mov ebp, dword [esp + 0x34]
jmp 0x405379
cmp ecx, 3
jne 0x4045c2
lea ecx, [esp + 0xe8]
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ecx
nop
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
xor edi, edi
lea ecx, [esp + ecx + 0x2a0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edi
lea edx, [esp + 0x434]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + edi*4 + 0xc0]
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x2c]
lea edi, [esp + edi + 0x5c4]
xor ecx, ecx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], edi
jmp 0x404460
mov ebx, dword [esi + eax*4 + 4]
mov edi, dword [edx - 4]
sub edi, ebx
sub edi, dword [esp + ecx*4 + 0x7c]
mov ebx, dword [esp + 0x10]
add edi, dword [ebx - 4]
sub edi, dword [esp + 0x1c]
sub edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + ecx*4 + 0x80]
inc eax
mov edi, dword [esp + 0x20]
sub edi, ebx
mov ebx, dword [esi + eax*4 + 4]
sub edi, ebx
sub edi, dword [esp + 0x1c]
sub edi, dword [esp + 0x14]
add edi, dword [edx]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x10]
add edi, dword [ebx]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + ecx*4 + 0x84]
mov edi, dword [edx + 4]
sub edi, ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
sub edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx + 4]
sub edi, dword [esp + 0x1c]
sub edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
inc eax
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + ecx*4 + 0x88]
mov edi, dword [edx + 8]
sub edi, ebx
mov ebx, dword [esi + eax*4 + 4]
sub edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx + 8]
sub edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x14]
inc eax
sub edi, ebx
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + ecx*4 + 0x8c]
mov edi, dword [edx + 0xc]
sub edi, ebx
mov ebx, dword [esi + eax*4 + 4]
inc eax
sub edi, ebx
mov ebx, dword [esp + 0x10]
add edi, dword [ebx + 0xc]
sub edi, dword [esp + 0x1c]
sub edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
add edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov ebx, dword [esp + 0x10]
add ecx, 5
add ebx, 0x14
add edx, 0x14
cmp ecx, 9
mov dword [esp + 0x10], ebx
jle 0x404460
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
inc edi
mov ecx, 4
add ebx, ecx
cmp edi, 9
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebx
jle 0x404432
mov ebx, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x2c]
add ecx, 0x28
cmp ecx, 0x168
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ecx
jle 0x404410
jmp 0x405379
cmp ecx, 4
jne 0x404784
lea ecx, [esp + 0xe8]
mov dword [esp + 0x28], ecx
xor ecx, ecx
mov dword [esp + 0x2c], ecx
lea esp, [esp]
mov edx, dword [esp + 0x28]
mov edx, dword [edx]
xor edi, edi
lea ecx, [esp + ecx + 0x2a0]
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], edi
lea edx, [esp + 0x434]
mov dword [esp + 0x24], ecx
mov edi, dword [esp + edi*4 + 0xc0]
mov ebx, dword [esp + 0x24]
mov ebx, dword [ebx]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x2c]
lea edi, [esp + edi + 0x5c4]
xor ecx, ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], edi
jmp 0x404630
mov edi, dword [esi + eax*4 + 4]
sub edi, dword [edx - 4]
sub edi, dword [esp + 0x1c]
mov ebx, dword [esp + ecx*4 + 0x7c]
lea edi, [ebx + edi*2]
mov ebx, dword [esp + 0x10]
sub edi, dword [ebx - 4]
add edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [esp + 0x1c]
inc eax
mov edi, dword [esi + eax*4 + 4]
sub edi, ebx
sub edi, dword [edx]
mov ebx, dword [esp + ecx*4 + 0x80]
lea edi, [ebx + edi*2]
mov ebx, dword [esp + 0x10]
sub edi, dword [ebx]
add edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [edx + 4]
inc eax
mov edi, dword [esi + eax*4 + 4]
sub edi, ebx
sub edi, dword [esp + 0x1c]
mov ebx, dword [esp + ecx*4 + 0x84]
lea edi, [ebx + edi*2]
mov ebx, dword [esp + 0x10]
sub edi, dword [ebx + 4]
add edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4 + 4], edi
mov ebx, dword [edx + 8]
inc eax
mov edi, dword [esi + eax*4 + 4]
sub edi, ebx
sub edi, dword [esp + 0x1c]
mov ebx, dword [esp + ecx*4 + 0x88]
lea edi, [ebx + edi*2]
mov ebx, dword [esp + 0x10]
sub edi, dword [ebx + 8]
mov ebx, dword [esp + 0x14]
inc eax
add edi, ebx
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
mov edi, dword [esi + eax*4 + 4]
sub edi, dword [edx + 0xc]
mov ebx, dword [esp + 0x1c]
inc eax
sub edi, ebx
mov ebx, dword [esp + ecx*4 + 0x8c]
lea edi, [ebx + edi*2]
mov ebx, dword [esp + 0x10]
sub edi, dword [ebx + 0xc]
add edi, dword [esp + 0x14]
add edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], edi
add ecx, 5
mov ebx, dword [esp + 0x10]
add ebx, 0x14
add edx, 0x14
cmp ecx, 9
mov dword [esp + 0x10], ebx
jle 0x404630
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x24]
inc edi
mov ecx, 4
add ebx, ecx
cmp edi, 9
mov dword [esp + 0x18], edi
mov dword [esp + 0x24], ebx
jle 0x404602
mov ebx, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x2c]
add ecx, 0x28
cmp ecx, 0x168
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], ecx
jle 0x4045e0
jmp 0x405379
cmp ecx, 5
jne 0x4048d6
lea edx, [esp + 0x2a0]
mov dword [esp + 0x20], 0xa
lea esp, [esp]
mov dword [esp + 0x24], edx
lea ecx, [esp + 0x434]
mov dword [esp + 0x1c], 0xa
mov edi, dword [esi + eax*4 + 4]
mov edx, dword [edx]
shl edi, 1
mov ebx, dword [ecx - 4]
sub ebx, edi
add ebx, edx
mov edi, dword [esp + 0x768]
mov dword [edi + eax*4 + 4], ebx
mov ebx, dword [ecx]
inc eax
mov edi, dword [esi + eax*4 + 4]
shl edi, 1
sub ebx, edi
add ebx, edx
mov edi, dword [esp + 0x768]
mov dword [edi + eax*4 + 4], ebx
mov ebx, dword [ecx + 4]
inc eax
mov edi, dword [esi + eax*4 + 4]
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
add ebx, edx
mov dword [edi + eax*4 + 4], ebx
mov ebx, dword [ecx + 8]
inc eax
mov edi, dword [esi + eax*4 + 4]
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
add ebx, edx
mov dword [edi + eax*4 + 4], ebx
mov ebx, dword [ecx + 0xc]
inc eax
mov edi, dword [esi + eax*4 + 4]
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
add ebx, edx
mov dword [edi + eax*4 + 4], ebx
mov ebx, dword [ecx + 0x10]
inc eax
mov edi, dword [esi + eax*4 + 4]
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
add ebx, edx
mov dword [edi + eax*4 + 4], ebx
mov ebx, dword [ecx + 0x14]
inc eax
mov edi, dword [esi + eax*4 + 4]
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
inc eax
add ebx, edx
mov dword [edi + eax*4], ebx
mov edi, dword [esi + eax*4 + 4]
mov ebx, dword [ecx + 0x18]
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
inc eax
add ebx, edx
mov dword [edi + eax*4], ebx
mov edi, dword [esi + eax*4 + 4]
mov ebx, dword [ecx + 0x1c]
inc eax
shl edi, 1
sub ebx, edi
mov edi, dword [esp + 0x768]
add ebx, edx
mov dword [edi + eax*4], ebx
mov edi, dword [esi + eax*4 + 4]
mov ebx, dword [ecx + 0x20]
inc eax
shl edi, 1
sub ebx, edi
add ebx, edx
mov edx, dword [esp + 0x768]
mov dword [edx + eax*4], ebx
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x1c]
add edx, 4
add ecx, 0x28
dec edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x1c], edi
jne 0x4047b3
dec dword [esp + 0x20]
jne 0x4047a0
jmp 0x405379
cmp ecx, 6
jne 0x404b05
mov dword [esp + 0x14], edx
jmp 0x4048f0
mov dword [esp + 0x18], 0
jmp 0x404900
xor ebx, ebx
mov dword [esp + 0x10], ebx
jmp 0x404910
mov ecx, dword [esp + 0x774]
mov edx, dword [esp + 0x14]
mov edx, dword [ecx + edx*4]
mov ecx, dword [esp + 0x18]
movsx ecx, word [edx + ecx*2]
movsx edx, word [edx + ebx*2]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x774]
mov edx, dword [edx + ebx*4]
mov ebx, dword [esp + 0x10]
movsx edx, word [edx + ebx*2]
mov ebx, dword [esp + 0x24]
inc eax
cmp ecx, ebx
mov dword [esp + 0x28], edx
jne 0x40496c
cmp ebx, edx
jne 0x40496c
mov ecx, dword [esp + ecx*4 + 0x110]
movsx ebx, word [edi + eax*2]
mov edx, ecx
mov dword [esp + 0x1c], ecx
sub edx, dword [ebp + ebx*4]
jmp 0x4049d8
cmp ecx, edx
je 0x4049b0
cmp ebx, edx
je 0x4049b0
mov edx, dword [esp + edx*4 + 0x110]
cmp ecx, ebx
mov ecx, dword [esp + ecx*4 + 0x110]
mov dword [esp + 0x1c], ecx
jne 0x404996
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
shl ebx, 1
jmp 0x4049d4
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
lea ecx, [ecx + ecx*2]
sub edx, ecx
add edx, dword [esp + ebx*4 + 0x110]
mov ecx, dword [esp + 0x1c]
jmp 0x4049d6
movsx edx, word [edi + eax*2]
mov edx, dword [ebp + edx*4]
mov ecx, dword [esp + ecx*4 + 0x110]
shl edx, 1
mov dword [esp + 0x34], edx
mov edx, dword [esp + ebx*4 + 0x110]
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x1c], ecx
sub edx, ebx
add edx, ecx
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
mov dword [esp + 0x20], edx
jne 0x404a07
cmp ecx, dword [esp + 0x10]
jne 0x404a03
movsx ebx, word [edi + eax*2]
mov ecx, dword [esp + 0x14]
mov ecx, dword [esp + ecx*4 + 0x54]
sub ecx, dword [ebp + ebx*4]
jmp 0x404aac
mov ebx, dword [esp + 0x14]
cmp ebx, dword [esp + 0x10]
je 0x404a72
mov ecx, dword [esp + 0x18]
cmp ebx, ecx
je 0x404a72
mov ebx, dword [esp + 0x10]
cmp ecx, ebx
jne 0x404a45
movsx edx, word [edi + eax*2]
mov ecx, dword [ebp + edx*4]
mov edx, dword [esp + 0x28]
sub ecx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x24]
sub ecx, dword [esp + edx*4 + 0x110]
add ecx, dword [esp + ebx*4 + 0x54]
mov edx, dword [esp + 0x14]
jmp 0x404aa2
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + ebx*4 + 0x54]
mov ebx, dword [esp + 0x34]
sub ecx, ebx
mov ebx, dword [esp + 0x14]
add ecx, dword [esp + ebx*4 + 0x54]
mov ebx, dword [esp + 0x18]
add ecx, dword [esp + ebx*4 + 0x54]
add edx, edx
jmp 0x404aac
movsx ecx, word [edi + eax*2]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + edx*4 + 0x110]
mov ecx, dword [ebp + ecx*4]
mov edx, dword [esp + 0x24]
sub ecx, ebx
mov ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x10]
sub ecx, ebx
mov ebx, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x18]
add ecx, ebx
mov ebx, dword [esp + edx*4 + 0x54]
mov edx, dword [esp + 0x1c]
add ecx, ebx
mov ebx, dword [esp + 0x30]
sub ecx, edx
movsx edx, word [edi + eax*2]
sub ebx, dword [ebp + edx*4]
sub ebx, ecx
sub ebx, dword [esp + 0x20]
mov ecx, dword [esp + 0x768]
mov dword [ecx + eax*4], ebx
mov ebx, dword [esp + 0x10]
inc ebx
cmp ebx, 9
mov dword [esp + 0x10], ebx
jle 0x404910
mov ecx, dword [esp + 0x18]
inc ecx
cmp ecx, 9
mov dword [esp + 0x18], ecx
jle 0x404900
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, 9
mov dword [esp + 0x14], ecx
jle 0x4048f0
jmp 0x405379
cmp ecx, 7
jne 0x404d48
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0
lea ebx, [ebx]
xor edx, edx
mov dword [esp + 0x10], edx
jmp 0x404b30
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x774]
mov ecx, dword [ecx + ebx*4]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
movsx ecx, word [ecx + ebx*2]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x34]
movsx ecx, word [ecx + edx*2]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x774]
mov ecx, dword [ecx + ebx*4]
movsx ebx, word [ecx + edx*2]
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
inc eax
cmp ecx, edx
mov dword [esp + 0x20], ebx
jne 0x404b97
cmp edx, ebx
jne 0x404b97
movsx edx, word [edi + eax*2]
mov ecx, dword [esp + ecx*4 + 0x110]
mov ebx, dword [ebp + edx*4]
mov dword [esp + 0x1c], ecx
sub ecx, ebx
jmp 0x404c2d
cmp ecx, ebx
je 0x404c05
cmp edx, ebx
je 0x404c05
cmp ecx, edx
jne 0x404bcd
mov edx, dword [esp + ecx*4 + 0x110]
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
shl ecx, 1
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + ebx*4 + 0x110]
mov ebx, dword [esp + 0x34]
sub ecx, ebx
mov dword [esp + 0x1c], edx
add ecx, edx
jmp 0x404c2d
mov ecx, dword [esp + ecx*4 + 0x110]
mov dword [esp + 0x1c], ecx
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + ebx*4 + 0x110]
mov ebx, dword [esp + 0x34]
sub ecx, ebx
mov ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x1c]
add ecx, ebx
add ecx, edx
jmp 0x404c2d
mov ebx, dword [esp + ecx*4 + 0x110]
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
shl ecx, 1
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x34]
sub ecx, edx
mov dword [esp + 0x1c], ebx
add ecx, ebx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
cmp ebx, edx
mov edx, dword [esp + 0x10]
jne 0x404c68
cmp dword [esp + 0x18], edx
mov ebx, dword [esp + 0x14]
jne 0x404c68
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + ebx*4 + 0x54]
sub ebx, dword [ebp + edx*4]
mov edx, dword [esp + 0x10]
sub ebx, ecx
mov ecx, dword [esp + 0x768]
mov dword [ecx + eax*4], ebx
jmp 0x404d11
cmp ebx, edx
je 0x404cd9
cmp ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
je 0x404cd9
cmp dword [esp + 0x18], edx
jne 0x404ca4
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
mov ebx, dword [esp + 0x20]
sub ecx, dword [esp + ebx*4 + 0x110]
mov ebx, dword [esp + 0x24]
sub ecx, dword [esp + ebx*4 + 0x110]
add ecx, dword [esp + edx*4 + 0x54]
mov ebx, dword [esp + 0x14]
jmp 0x404cff
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
mov edx, dword [esp + edx*4 + 0x54]
lea ebx, [ebx + ebx*2]
sub edx, ebx
mov ebx, dword [esp + 0x14]
add edx, dword [esp + ebx*4 + 0x54]
mov ebx, dword [esp + 0x18]
add edx, dword [esp + ebx*4 + 0x54]
add ecx, ecx
sub edx, ecx
mov ecx, dword [esp + 0x768]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x10]
jmp 0x404d11
movsx ecx, word [edi + eax*2]
mov ecx, dword [ebp + ecx*4]
mov ebx, dword [esp + 0x20]
sub ecx, dword [esp + ebx*4 + 0x110]
mov ebx, dword [esp + 0x24]
sub ecx, dword [esp + ebx*4 + 0x110]
add ecx, dword [esp + edx*4 + 0x54]
mov ebx, dword [esp + 0x18]
add ecx, dword [esp + ebx*4 + 0x54]
sub ecx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x768]
mov dword [ebx + eax*4], ecx
inc edx
cmp edx, 9
mov dword [esp + 0x10], edx
jle 0x404b30
mov ecx, dword [esp + 0x18]
inc ecx
cmp ecx, 9
mov dword [esp + 0x18], ecx
jle 0x404b20
mov ecx, dword [esp + 0x14]
inc ecx
cmp ecx, 9
mov dword [esp + 0x14], ecx
jle 0x404b12
jmp 0x405379
cmp ecx, 8
jne 0x405232
mov edx, dword [esp + 0x774]
mov ecx, dword [esp + 0x768]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x24], 0xa
jmp 0x404d70
mov edx, dword [esp + 0x774]
mov dword [esp + 0x28], 0
mov dword [esp + 0x20], edx
jmp 0x404d90
mov dword [esp + 0x2c], 6
jmp 0x404da0
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
mov ebx, dword [esp + 0x28]
movsx ebx, word [edx + ebx]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
movsx edx, word [edx + ebx - 6]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
movsx edx, word [edx + ebx - 6]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0x10]
jne 0x404dfe
cmp edx, ebx
jne 0x404dfe
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x18]
mov ebx, dword [esp + ebx*4 + 0x110]
sub ebx, dword [ebp + edx*4]
mov dword [ecx + eax*4], ebx
jmp 0x404e7a
cmp dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
je 0x404e59
cmp edx, ebx
je 0x404e59
cmp dword [esp + 0x18], edx
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx*4 + 0x110]
mov edx, dword [ebp + edx*4]
jne 0x404e39
shl edx, 1
sub ebx, edx
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x404e7a
lea edx, [edx + edx*2]
sub ebx, edx
mov edx, dword [esp + 0x14]
add ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x404e7a
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
mov edx, dword [esp + edx*4 + 0x110]
shl ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x18]
add edx, dword [esp + ebx*4 + 0x110]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
mov ebx, dword [esp + 0x28]
movsx ebx, word [edx + ebx]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
movsx edx, word [edx + ebx - 4]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
movsx edx, word [edx + ebx - 4]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0x10]
jne 0x404ed8
cmp edx, ebx
jne 0x404ed8
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x18]
mov ebx, dword [esp + ebx*4 + 0x110]
sub ebx, dword [ebp + edx*4]
mov dword [ecx + eax*4], ebx
jmp 0x404f54
cmp dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
je 0x404f33
cmp edx, ebx
je 0x404f33
cmp dword [esp + 0x18], edx
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx*4 + 0x110]
mov edx, dword [ebp + edx*4]
jne 0x404f13
shl edx, 1
sub ebx, edx
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x404f54
lea edx, [edx + edx*2]
sub ebx, edx
mov edx, dword [esp + 0x14]
add ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x404f54
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
mov edx, dword [esp + edx*4 + 0x110]
shl ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x18]
add edx, dword [esp + ebx*4 + 0x110]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
mov ebx, dword [esp + 0x28]
movsx ebx, word [edx + ebx]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
movsx edx, word [edx + ebx - 2]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
movsx edx, word [edx + ebx - 2]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0x10]
jne 0x404fb2
cmp edx, ebx
jne 0x404fb2
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x18]
mov ebx, dword [esp + ebx*4 + 0x110]
sub ebx, dword [ebp + edx*4]
mov dword [ecx + eax*4], ebx
jmp 0x40502e
cmp dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
je 0x40500d
cmp edx, ebx
je 0x40500d
cmp dword [esp + 0x18], edx
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx*4 + 0x110]
mov edx, dword [ebp + edx*4]
jne 0x404fed
shl edx, 1
sub ebx, edx
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x40502e
lea edx, [edx + edx*2]
sub ebx, edx
mov edx, dword [esp + 0x14]
add ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x40502e
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
mov edx, dword [esp + edx*4 + 0x110]
shl ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x18]
add edx, dword [esp + ebx*4 + 0x110]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
mov ebx, dword [esp + 0x28]
movsx ebx, word [edx + ebx]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
movsx edx, word [ebx + edx]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
movsx edx, word [ebx + edx]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0x10]
jne 0x40508a
cmp edx, ebx
jne 0x40508a
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x18]
mov ebx, dword [esp + ebx*4 + 0x110]
sub ebx, dword [ebp + edx*4]
mov dword [ecx + eax*4], ebx
jmp 0x405106
cmp dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
je 0x4050e5
cmp edx, ebx
je 0x4050e5
cmp dword [esp + 0x18], edx
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx*4 + 0x110]
mov edx, dword [ebp + edx*4]
jne 0x4050c5
shl edx, 1
sub ebx, edx
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x405106
lea edx, [edx + edx*2]
sub ebx, edx
mov edx, dword [esp + 0x14]
add ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x405106
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
mov edx, dword [esp + edx*4 + 0x110]
shl ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x18]
add edx, dword [esp + ebx*4 + 0x110]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx]
mov ebx, dword [esp + 0x28]
movsx ebx, word [edx + ebx]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
movsx edx, word [edx + ebx + 2]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
movsx edx, word [edx + ebx + 2]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x14]
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0x10]
jne 0x405164
cmp edx, ebx
jne 0x405164
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x18]
mov ebx, dword [esp + ebx*4 + 0x110]
sub ebx, dword [ebp + edx*4]
mov dword [ecx + eax*4], ebx
jmp 0x4051e0
cmp dword [esp + 0x18], ebx
mov edx, dword [esp + 0x14]
je 0x4051bf
cmp edx, ebx
je 0x4051bf
cmp dword [esp + 0x18], edx
movsx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x10]
mov ebx, dword [esp + ebx*4 + 0x110]
mov edx, dword [ebp + edx*4]
jne 0x40519f
shl edx, 1
sub ebx, edx
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x4051e0
lea edx, [edx + edx*2]
sub ebx, edx
mov edx, dword [esp + 0x14]
add ebx, dword [esp + edx*4 + 0x110]
mov edx, dword [esp + 0x18]
add ebx, dword [esp + edx*4 + 0x110]
mov dword [ecx + eax*4], ebx
jmp 0x4051e0
movsx ebx, word [edi + eax*2]
mov ebx, dword [ebp + ebx*4]
mov edx, dword [esp + edx*4 + 0x110]
shl ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x18]
add edx, dword [esp + ebx*4 + 0x110]
mov dword [ecx + eax*4], edx
mov edx, dword [esp + 0x2c]
add edx, 0xa
cmp edx, 0x18
mov dword [esp + 0x2c], edx
jle 0x404da0
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
add edx, 2
add ebx, 4
cmp edx, 0x12
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ebx
jle 0x404d90
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add ebx, 4
dec edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x24], edx
jne 0x404d70
jmp 0x405379
cmp ecx, 9
jne 0x4052b1
mov ecx, dword [esp + 0x768]
mov edi, 0xa
mov edx, 0xa
jmp 0x405250
mov ebx, dword [esi + eax*4 + 4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
mov ebx, dword [esi + eax*4 + 4]
inc eax
mov dword [ecx + eax*4], ebx
mov ebx, dword [esi + eax*4 + 4]
inc eax
mov dword [ecx + eax*4], ebx
mov ebx, dword [esi + eax*4 + 4]
inc eax
mov dword [ecx + eax*4], ebx
mov ebx, dword [esi + eax*4 + 4]
inc eax
dec edx
mov dword [ecx + eax*4], ebx
jne 0x405250
dec edi
jne 0x405243
jmp 0x405379
cmp ecx, 0xa
jne 0x405379
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x768]
jmp 0x4052d0
mov edx, 0xa
jmp 0x4052e0
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
mov dword [ecx + eax*4 + 4], ebx
inc eax
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
inc eax
mov dword [ecx + eax*4], ebx
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
inc eax
mov dword [ecx + eax*4], ebx
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
inc eax
mov dword [ecx + eax*4], ebx
movsx ebx, word [edi + eax*2 + 2]
mov ebx, dword [ebp + ebx*4]
inc eax
dec edx
mov dword [ecx + eax*4], ebx
jne 0x4052e0
dec dword [esp + 0x24]
jne 0x4052d0
push esi
call fcn.00438e44
push ebp
call fcn.00438e44
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
add esp, 8
mov byte [esp + 0x758], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4053ae
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x758], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4053d7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x750]
mov eax, dword [esp + 0x30]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x74c
ret