Function at 0x56ce40
Capabilities:
Create thread
Terminate thread

Disassembly:
push 0xffffffffffffffff
push 0x657f57
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x294
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x80]
xor esi, esi
mov edx, 0x72a328
cmp eax, esi
push edi
mov dword [esp + 0x14], edx
je 0x56ce7f
mov edx, 0x71acf8
mov dword [esp + 0x14], edx
mov eax, dword [ebx + 0x264]
cmp eax, 1
jne 0x56ce91
mov edx, 0x7131e0
jmp 0x56ceaa
cmp eax, 2
jne 0x56ceae
mov eax, dword [0x826c88]
mov edx, 0x703bb0
cmp dword [eax + 8], esi
jne 0x56ceaa
mov edx, 0x70b6c8
mov dword [esp + 0x14], edx
mov ecx, 0x95
xor eax, eax
cmp word [edx], si
lea edi, [esp + 0x50]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x10], esi
rep stosd dword es:[edi], eax
jle 0x56cfa9
mov ebp, dword [fcn.0065e1c8]
mov eax, 0x6e7dbc
lea edi, [esp + 0x4c]
mov dword [esp + 0x1c], eax
cmp dword [esp + 0x10], 3
jge 0x56cfa9
mov ecx, dword [eax - 4]
test ecx, ecx
jne 0x56cf93
mov edx, dword [esp + 0x10]
mov dword [eax], 0xffffffff
mov dword [eax + 8], 0x7fffffff
mov eax, dword [ebx + 0x264]
inc edx
cmp eax, 2
mov dword [esp + 0x10], edx
jne 0x56cf41
mov ecx, dword [0x826c88]
mov eax, dword [ecx + 8]
test eax, eax
je 0x56cf32
lea edx, [esp + 0x34]
push edx
push 0
push esi
push 0x4b1640
jmp 0x56cf7b
lea eax, [esp + 0x34]
push eax
push 0
push esi
push 0x4b1600
jmp 0x56cf7b
cmp eax, 1
jne 0x56cf55
lea ecx, [esp + 0x34]
push ecx
push 0
push esi
push 0x4b1680
jmp 0x56cf7b
mov eax, dword [ebx + 0x80]
test eax, eax
je 0x56cf6e
lea edx, [esp + 0x34]
push edx
push 0
push esi
push 0x4b15c0
jmp 0x56cf7b
lea eax, [esp + 0x34]
push eax
push 0
push esi
push 0x4b1540
push 0
push 0
call ebp
push 1
mov dword [edi], eax
call dword [fcn.0065e26c]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
movsx ecx, word [edx]
inc esi
add eax, 0x10
add edi, 4
cmp esi, ecx
mov dword [esp + 0x1c], eax
jl 0x56cedf
mov al, byte [esp + 0x3f]
xor ebp, ebp
mov byte [esp + 0x24], al
xor eax, eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
cmp word [edx], ax
mov dword [esp + 0x2ac], eax
mov dword [esp + 0x10], eax
jle 0x56d02a
mov edi, 0x6e7db8
lea esi, [esp + 0x4c]
cmp dword [esi], 0
je 0x56cffe
push esi
push 1
push eax
lea ecx, [esp + 0x30]
call fcn.004b2240
mov eax, dword [esp + 0x2c]
mov ebp, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
mov dword [edi], 1
mov ecx, dword [esp + 0x10]
add esi, 4
inc ecx
add edi, 0x10
mov dword [esp + 0x10], ecx
movsx ecx, word [edx]
cmp dword [esp + 0x10], ecx
jl 0x56cfda
test ebp, ebp
je 0x56d02a
mov edx, eax
sub edx, ebp
test edx, 0xfffffffc
jne 0x56d0ac
mov eax, dword [ebx + 0x20]
push 2
push eax
call dword [fcn.0065f4b0]
lea esi, [ebx + 0x1e4]
push 1
mov ecx, esi
call fcn.00643e82
push 1
lea ecx, [ebx + 0xc4]
call fcn.00643e82
push 1
lea ecx, [ebx + 0x84]
call fcn.00643e82
push 0x6bced8
mov ecx, esi
call fcn.00643d44
push 0x6c7010
lea ecx, [esp + 0x20]
call fcn.00643d2c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2ac], 1
push ecx
lea ecx, [ebx + 0x104]
call fcn.004daa80
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2ac], 0
call fcn.00643d26
mov edx, dword [esp + 0x28]
push edx
jmp 0x56d6ff
mov dword [esp + 0x10], 0
test ebp, ebp
je 0x56d229
sub eax, ebp
sar eax, 2
je 0x56d229
cmp dword [esp + 0x10], 3
jge 0x56d229
call fcn.0047e360
mov ecx, dword [esp + 0x28]
test ecx, ecx
jne 0x56d0e3
xor eax, eax
jmp 0x56d0ec
mov eax, dword [esp + 0x2c]
sub eax, ecx
sar eax, 2
push 0x7d0
push 0
push ecx
push eax
call dword [0x65e1c4]
mov esi, eax
call fcn.0047e360
cmp esi, 0x102
je 0x56d229
mov eax, dword [esp + 0x14]
movsx ecx, word [eax]
dec ecx
cmp esi, ecx
ja 0x56d229
mov ebp, dword [esp + 0x28]
xor eax, eax
lea ecx, [esp + 0x4c]
mov esi, dword [ebp + esi*4]
test esi, esi
je 0x56d134
cmp esi, dword [ecx]
je 0x56d151
inc eax
add ecx, 4
cmp eax, 0x96
jl 0x56d12c
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
jmp 0x56d0b4
test eax, eax
jge 0x56d167
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x2c]
jmp 0x56d0b4
lea esi, [esp + eax*4 + 0x4c]
lea edx, [esp + 0x20]
push edx
mov eax, dword [esi]
push eax
call dword [0x65e1c0]
test eax, eax
je 0x56d213
cmp dword [esp + 0x20], 0x103
je 0x56d213
mov ecx, dword [esi]
push ecx
call dword [0x65e18c]
mov eax, dword [esp + 0x2c]
mov dword [esi], 0
mov esi, dword [esp + 0x28]
cmp eax, eax
mov ecx, eax
je 0x56d1be
mov edx, dword [eax]
add eax, 4
mov dword [esi], edx
add esi, 4
cmp eax, ecx
jne 0x56d1ac
mov eax, dword [esp + 0x2c]
push eax
push esi
lea ecx, [esp + 0x2c]
call fcn.004d5f40
mov ebp, dword [esp + 0x14]
mov eax, esi
xor esi, esi
mov dword [esp + 0x2c], eax
cmp word [ebp], si
jle 0x56d217
lea edi, [esp + 0x4c]
cmp dword [edi], 0
je 0x56d1f5
push edi
push 1
push eax
lea ecx, [esp + 0x30]
call fcn.004b2240
mov eax, dword [esp + 0x2c]
movsx ecx, word [ebp]
inc esi
add edi, 4
cmp esi, ecx
jl 0x56d1df
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x56d0b4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x28]
inc ecx
mov dword [esp + 0x10], ecx
jmp 0x56d0b4
mov edx, dword [esp + 0x14]
xor edi, edi
cmp word [edx], di
jle 0x56d29e
mov ebp, dword [0x65e1c0]
lea esi, [esp + 0x4c]
push edi
call fcn.004b1d40
mov eax, dword [esi]
add esp, 4
test eax, eax
je 0x56d28f
lea ecx, [esp + 0x20]
push ecx
push eax
call ebp
test eax, eax
je 0x56d263
cmp dword [esp + 0x20], 0x103
jne 0x56d280
mov edx, dword [esi]
push 0x12c
push edx
call dword [0x65e1b8]
test eax, eax
je 0x56d280
mov eax, dword [esi]
push 0
push eax
call dword [0x65e1b4]
mov ecx, dword [esi]
push ecx
call dword [0x65e18c]
mov dword [esi], 0
mov edx, dword [esp + 0x14]
inc edi
add esi, 4
movsx eax, word [edx]
cmp edi, eax
jl 0x56d23e
push 0xffffffffffffffff
lea ecx, [ebx + 0x6c]
push 0
call fcn.0056de80
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], 0
cmp word [eax], 0
jle 0x56d460
add eax, 0x3bd0
mov dword [esp + 0x1c], 0x6e7dc4
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], eax
mov edx, dword [ecx]
mov edi, dword [ebx + 0x74]
mov eax, 0x7fffffff
mov dword [esp + 0x10], edx
cmp edx, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
je 0x56d377
mov eax, dword [ecx - 8]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 2
cdq
idiv dword [ecx - 4]
cmp eax, 0x5a
mov dword [esp + 0x44], eax
jle 0x56d325
fild dword [esp + 0x10]
lea ecx, [eax + eax*2]
mov dword [esp + 0x10], ecx
fmul qword [0x66a498]
fild dword [esp + 0x10]
faddp st(1)
jmp 0x56d34d
fild dword [esp + 0x10]
cmp eax, 0x50
jle 0x56d343
fmul qword [0x66a490]
lea edx, [eax + eax]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
faddp st(1)
jmp 0x56d34d
fmul qword [0x665d60]
fiadd dword [esp + 0x44]
call fcn.00645030
mov edx, dword [esp + 0x38]
mov ecx, 0x64
sub ecx, dword [edx]
imul ecx, eax
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x65f9b0]
call fcn.00645030
mov dword [esp + 0x48], eax
xor esi, esi
test edi, edi
jle 0x56d38f
mov ecx, dword [ebx + 0x70]
add ecx, 8
cmp eax, dword [ecx]
jl 0x56d38f
inc esi
add ecx, 0xc
cmp esi, edi
jl 0x56d383
mov ebp, dword [ebx + 0x74]
lea ecx, [ebx + 0x6c]
cmp esi, ebp
push 0xffffffffffffffff
jl 0x56d3a6
lea eax, [esi + 1]
push eax
call fcn.0056de80
jmp 0x56d40a
lea ecx, [ebp + 1]
push ecx
lea ecx, [ebx + 0x6c]
call fcn.0056de80
mov eax, dword [ebx + 0x70]
lea edi, [esi + esi*2]
lea edx, [ebp + ebp*2]
shl edi, 2
shl edx, 2
sub edx, edi
lea ecx, [eax + edi]
push edx
lea edx, [esi + esi*2 + 3]
push ecx
lea eax, [eax + edx*4]
push eax
call dword [fcn.0065f1b0]
mov eax, dword [ebx + 0x70]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov edx, eax
mov dword [edx], ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], ecx
test eax, eax
je 0x56d400
mov edx, 0x7fffffff
mov dword [eax], 0
mov dword [eax + 4], edx
mov dword [eax + 8], edx
add eax, 0xc
mov edx, ecx
dec ecx
test edx, edx
jne 0x56d3eb
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x20]
lea eax, [esi + esi*2]
mov esi, dword [esp + 0x48]
xor ecx, ecx
shl eax, 2
mov ebp, dword [ebx + 0x70]
add ebp, eax
add eax, 0xc
mov dword [ebp], edx
mov dword [ebp + 4], edi
mov dword [ebp + 8], esi
mov ebp, ecx
dec ecx
test ebp, ebp
jne 0x56d41e
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
inc edx
movsx eax, word [eax]
add ebp, 4
add ecx, 0x10
cmp edx, eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x1c], ecx
jl 0x56d2d5
mov ecx, dword [ebx + 0x244]
mov edi, dword [fcn.0065f498]
push 0
push 0
push 0xb
push ecx
call edi
mov edx, dword [ebx + 0x244]
push 0
push 0
push 0x1009
push edx
call edi
lea ecx, [esp + 0x18]
call fcn.00643d62
mov eax, dword [esp + 0x14]
xor esi, esi
mov byte [esp + 0x2ac], 2
cmp word [eax], si
jle 0x56d6b6
xor edi, edi
mov ecx, dword [ebx + 0x70]
lea ebp, [ebx + 0x224]
push 0
mov eax, dword [edi + ecx]
mov edx, eax
shl edx, 4
lea eax, [eax + eax*4]
mov ecx, dword [edx + 0x6e7dc4]
cmp ecx, 0x7fffffff
mov ecx, dword [esp + 0x18]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 + 0xc]
jne 0x56d579
push 2
push 0
push 0
push eax
push esi
push 3
mov ecx, ebp
call fcn.006440aa
mov edx, dword [ebx + 0x70]
mov ecx, dword [esp + 0x14]
push 0
mov eax, dword [edi + edx]
mov edx, dword [ecx + eax*4 + 0x3bd0]
lea eax, [esp + 0x24]
push edx
push eax
call fcn.00471ed0
add esp, 0xc
mov eax, dword [eax]
mov ecx, ebp
push eax
push 1
push esi
mov byte [esp + 0x2b8], 3
call fcn.00643d56
lea ecx, [esp + 0x20]
mov byte [esp + 0x2ac], 2
call fcn.00643d26
push 0x6a2a34
push 2
push esi
mov ecx, ebp
call fcn.00643d56
push 0x6a2a34
push 3
push esi
mov ecx, ebp
call fcn.00643d56
mov ecx, dword [ebx + 0x70]
mov edx, dword [edi + ecx]
shl edx, 4
mov eax, dword [edx + 0x6e7db8]
test eax, eax
jne 0x56d56f
push 0x6a2a34
jmp 0x56d693
push 0x6bcecc
jmp 0x56d693
push 1
push 0
push 0
push eax
push esi
push 3
mov ecx, ebp
call fcn.006440aa
mov edx, dword [ebx + 0x70]
mov ecx, dword [esp + 0x14]
push 0
mov eax, dword [edi + edx]
mov edx, dword [ecx + eax*4 + 0x3bd0]
lea eax, [esp + 0x20]
push edx
push eax
call fcn.00471ed0
add esp, 0xc
mov eax, dword [eax]
mov ecx, ebp
push eax
push 1
push esi
mov byte [esp + 0x2b8], 4
call fcn.00643d56
lea ecx, [esp + 0x1c]
mov byte [esp + 0x2ac], 2
call fcn.00643d26
mov ecx, dword [ebx + 0x70]
mov edx, dword [edi + ecx]
lea ecx, [esp + 0x18]
shl edx, 4
mov eax, dword [edx + 0x6e7dc4]
push eax
push 0x69a740
push ecx
call fcn.00643d50
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, ebp
push edx
push 2
push esi
call fcn.00643d56
mov eax, dword [ebx + 0x70]
lea edx, [esp + 0x18]
mov ecx, dword [edi + eax + 4]
push ecx
push 0x6b5d44
push edx
call fcn.00643d50
mov eax, dword [esp + 0x24]
add esp, 0xc
mov ecx, ebp
push eax
push 3
push esi
call fcn.00643d56
mov ecx, dword [ebx + 0x70]
lea eax, [esp + 0x18]
mov edx, dword [edi + ecx + 8]
push edx
push 0x6b5d44
push eax
call fcn.00643d50
mov ecx, dword [ebx + 0x70]
add esp, 0xc
mov eax, dword [edi + ecx + 8]
cmp eax, 0x32
jge 0x56d658
push 0x6bcec0
jmp 0x56d685
cmp eax, 0x64
jge 0x56d664
push 0x6bceb8
jmp 0x56d685
cmp eax, 0x12c
jge 0x56d672
push 0x6bceb0
jmp 0x56d685
cmp eax, 0x1f4
jge 0x56d680
push 0x6bcea8
jmp 0x56d685
push 0x6bce9c
lea ecx, [esp + 0x1c]
call fcn.00643efa
mov edx, dword [esp + 0x18]
push edx
push 4
push esi
mov ecx, ebp
call fcn.00643d56
mov eax, dword [esp + 0x14]
inc esi
add edi, 0xc
movsx ecx, word [eax]
cmp esi, ecx
jl 0x56d4a9
mov edi, dword [fcn.0065f498]
mov edx, dword [ebx + 0x244]
push 0
push 1
push 0xb
push edx
call edi
push 3
push 3
push 0
lea ecx, [ebx + 0x224]
call fcn.00643d08
mov eax, dword [ebx + 0x20]
push 0
push 0x1f4
push 2
push eax
call dword [fcn.0065f4d4]
lea ecx, [esp + 0x18]
mov byte [esp + 0x2ac], 0
call fcn.00643d26
mov ecx, dword [esp + 0x28]
push ecx
call fcn.00643cfc
mov ecx, dword [esp + 0x2a8]
add esp, 4
mov dword fs:[0], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2a0
ret