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

Disassembly:
sub esp, 0x180
push ebx
mov ebx, dword [esp + 0x188]
xor eax, eax
push ebp
push esi
push 0x14c
mov ebp, dword [ebx + 0xc]
xorps xmm0, xmm0
push eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x2c], 0
mov dword [esp + 0x24], 0
movlpd qword [esp + 0x184], xmm0
movlpd qword [esp + 0x18c], xmm0
call fcn.00591af0
movzx edx, word [ebx + 0x6e]
lea ecx, [ebx + 0x70]
movzx eax, word [ebx + 0x6c]
add esp, 0xc
imul eax, edx
mov dword [esp + 0xdc], ecx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x3c], 0
mov dword [esp + 0x90], ebp
lea edx, [ecx + eax*2]
mov ecx, dword [esp + 0x194]
mov eax, ecx
mov dword [esp + 0x188], edx
shr eax, 8
and ecx, 0xfffffeff
and eax, 1
mov dword [esp + 0x194], ecx
cmp word [ebx + 0x66], 0
mov dword [esp + 0x154], eax
lea eax, [ebp + 0x100]
mov dword [esp + 0x34], edx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x94], ecx
je 0x5800ce
test dword [ebx + 0x48], 0x2000
jne 0x5800ce
xor eax, eax
jmp 0x5800d3
mov eax, 1
cmp word [ebx + 0x64], 0
mov dword [esp + 0x9c], eax
ja 0x5800ee
test dword [ebx + 0x48], 0x2000
jne 0x5800ee
xor eax, eax
jmp 0x5800f3
mov eax, 1
mov dword [esp + 0x98], eax
xor esi, esi
movzx eax, word [ebx + 0x62]
dec eax
mov dword [esp + 0xb8], esi
cmp eax, 5
ja case.default.0x580111
jmp dword [eax*4 + 0x581c6c]
mov dword [esp + 0xc4], 0xd
jmp 0x580178
mov dword [esp + 0xc4], 0xa
jmp 0x580178
mov dword [esp + 0xc4], 0xd0a
jmp 0x580178
mov esi, 1
mov dword [esp + 0xc4], 0xd0a
mov dword [esp + 0xb8], esi
jmp 0x580178
mov esi, 2
mov dword [esp + 0xc4], 0xd0a
mov dword [esp + 0xb8], esi
jmp 0x580178
mov dword [esp + 0xc4], esi
movzx ecx, word [ebx + 0x60]
mov dword [esp + 0xbc], SysStringLen
mov dword [esp + 0xc0], 0
push edi
cmp ecx, 1
jne 0x5801a3
mov edi, ecx
mov dword [esp + 0xcc], edi
jmp 0x5801b9
xor eax, eax
cmp ecx, 2
sete al
inc eax
mov dword [esp + 0x10], eax
mov edi, eax
mov dword [esp + 0xcc], eax
mov ecx, dword [ebx + 0x40]
mov eax, ecx
shr eax, 4
and eax, 1
mov dword [esp + 0xd0], SysStringLen
mov dword [esp + 0xd8], eax
lea eax, [ebp + 0x340]
mov dword [esp + 0xdc], eax
movzx eax, word [ebx + 0x6e]
mov dword [esp + 0xe4], eax
movzx eax, word [ebx + 0x6c]
mov dword [esp + 0xe8], eax
mov eax, ecx
shr eax, 9
and eax, 1
mov dword [esp + 0xd4], 0
mov dword [esp + 0x14c], eax
mov eax, ecx
shr eax, 0x15
and eax, 1
mov dword [esp + 0x150], eax
mov eax, ecx
shr eax, 0x13
and eax, 1
mov dword [esp + 0x154], eax
mov eax, ecx
shr eax, 0x11
and eax, 1
mov dword [esp + 0x15c], eax
test ecx, 0x80000
je 0x5802b7
cmp esi, 1
jne 0x58025a
mov dword [esp + 0xc0], 0x2029
jmp 0x580288
cmp esi, 2
jne 0x58026c
mov dword [esp + 0xc0], 0xd
jmp 0x580288
mov eax, dword [esp + 0xc8]
movzx eax, al
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
test esi, esi
je 0x580293
mov dword [esp + 0xc4], 0xa
cmp edi, 1
mov dword [esp + 0xd4], 0xa
mov eax, 0xd
mov ecx, 0x2029
cmove eax, ecx
mov dword [esp + 0xd0], eax
jmp 0x5802c2
mov dword [esp + 0x158], 0
movzx eax, word [edx + 2]
cmp word [edx + eax*2], 0x78
lea edx, [edx + eax*2]
je 0x5802c2
movzx eax, word [ebx + 0x68]
lea ebp, [edx + 4]
push dword [ebx + 8]
mov esi, dword [ebx]
inc eax
push eax
mov ecx, esi
mov dword [esp + 0x5c], 0x14
call dword [0x5c53f0]
call esi
mov ecx, eax
add esp, 8
mov dword [esp + 0x44], ecx
test ecx, ecx
je 0x5804f3
movzx eax, word [ebx + 0x68]
inc eax
push eax
push 1
push ecx
call fcn.00591af0
push ebp
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
call fcn.00567820
add esp, 0x18
test eax, eax
jne 0x58034c
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
push dword [esp + 0x48]
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, 0xffffffd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
mov edx, dword [esp + 0x198]
cmp edx, 1
jne 0x580377
test byte [ebx + 0x48], 0x80
je 0x580371
test dword [ebx + 0x40], 0x10000
jne 0x580371
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x5c], ecx
jmp 0x58038f
mov ecx, dword [esp + 0x54]
jmp 0x580396
mov eax, dword [esp + 0x54]
mov dword [esp + 0x64], eax
lea ecx, [eax + 4]
mov dword [esp + 0x54], ecx
cmp edx, 2
jne 0x580396
mov dword [esp + 0x68], ecx
add ecx, 4
mov dword [esp + 0x54], ecx
test dword [ebx + 0x40], 0x800100
je 0x5803aa
mov dword [esp + 0x6c], ecx
add ecx, 4
mov dword [esp + 0x54], ecx
cmp dword [esp + 0x74], 0
je 0x5803bc
mov dword [esp + 0x74], ecx
add ecx, 4
mov dword [esp + 0x54], ecx
cmp dword [esp + 0xa4], 0
je 0x5803d1
mov eax, ecx
add ecx, 4
mov dword [esp + 0x54], ecx
jmp 0x5803d5
mov eax, dword [esp + 0x58]
mov edx, ecx
test cl, 4
je 0x5803e5
lea ecx, [edx + 4]
mov dword [esp + 0x54], ecx
mov edx, ecx
test eax, eax
cmove eax, edx
cmp dword [esp + 0x78], 0
mov dword [esp + 0x58], eax
je 0x58040d
movzx eax, word [ebx + 0x68]
inc eax
push eax
push 0
push dword [esp + 0x4c]
call fcn.00591af0
mov ecx, dword [esp + 0x60]
add esp, 0xc
movzx eax, word [ebx + 0x68]
mov edi, ebp
sub edi, dword [esp + 0x38]
inc eax
push dword [ebx + 8]
mov esi, dword [ebx]
sar edi, 1
lea eax, [ecx + eax*8]
mov ecx, esi
mov dword [esp + 0x54], eax
xor eax, eax
cmp dword [esp + 0xb0], eax
setne al
add eax, 4
imul eax, edi
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov dword [esp + 0x3c], eax
test eax, eax
jne 0x58046b
push ebx
push dword [esp + 0x48]
call fcn.00583560
add esp, 8
mov eax, 0xffffffd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
lea esi, [edi*4]
push esi
push 0
push eax
call fcn.00591af0
movzx ecx, word [ebx + 0x68]
add esp, 0xc
mov eax, dword [esp + 0x50]
lea eax, [eax + ecx*4]
add eax, 4
test dword [ebx + 0x40], 0x80010000
mov dword [esp + 0x14], eax
jne 0x5804bf
cmp dword [esp + 0xb0], 0
jne 0x5804bf
push 1
push 0
push 0
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
call fcn.00577460
add esp, 0x18
push ebp
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x38]
push eax
call fcn.005852d0
add esp, 0xc
cmp dword [esp + 0x14], 0x10000
jle 0x580503
push ebx
push dword [esp + 0x40]
call fcn.00583560
push ebx
push dword [esp + 0x50]
call fcn.00583560
add esp, 0x10
pop edi
pop esi
pop ebp
mov eax, 0xffffffd0
pop ebx
add esp, 0x180
ret
cmp dword [esp + 0xac], 0
je 0x580533
mov eax, dword [esp + 0x3c]
push edi
add eax, esi
push 0
push eax
mov dword [esp + 0x54], eax
call fcn.00591af0
push 0
push dword [esp + 0x48]
lea eax, [esp + 0x44]
push eax
call fcn.00585630
add esp, 0x18
push dword [ebx + 8]
mov esi, dword [ebx]
mov ecx, esi
push 0x5c
call dword [0x5c53f0]
call esi
mov edi, eax
add esp, 8
test edi, edi
je 0x581c47
push 0x5c
push 0
push edi
call fcn.00591af0
add esp, 0xc
mov dword [edi + 0x28], ebx
mov esi, dword [ebx]
mov ecx, esi
push dword [ebx + 8]
push 0x1000
call dword [0x5c53f0]
call esi
add esp, 8
mov dword [edi + 0x30], eax
mov esi, dword [ebx]
mov ecx, esi
push dword [ebx + 8]
push 0x800
call dword [0x5c53f0]
call esi
mov ecx, eax
add esp, 8
mov eax, dword [edi + 0x30]
mov dword [edi + 0x34], ecx
test eax, eax
je 0x581c18
test ecx, ecx
je 0x581c04
cmp dword [0x71fff4], 0
mov dword [eax], 0
mov eax, dword [edi + 0x30]
mov dword [eax + 4], 0
mov eax, dword [edi + 0x34]
mov dword [eax], 0
mov eax, dword [edi + 0x34]
mov dword [eax + 4], 0
mov dword [edi + 0x38], 0xffffffff
mov dword [edi + 0x3c], 0xffffffff
mov dword [edi + 0x40], 0xffffffff
mov dword [edi + 0x44], 0xffffffff
mov dword [edi + 0x48], 0xffffffff
mov dword [edi + 0x58], 0xffffffff
jne 0x580640
mov eax, 0x71ffaf
mov dword [0x71fff4], 1
and eax, 0xfffffff0
mov dword [0x71ffec], eax
mov dword [eax], 0x80000000
mov dword [eax + 0x10], 0x7fffffff
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], SysStringLen
mov dword [eax + 0x30], 0xffffffff
mov dword [eax + 0x34], 0x7fffffff
push dword [esp + 0x14]
mov dword [esp + 0x34], edi
push 0
push 0
push 5
push 5
push 0x11
push 0
push edi
call fcn.00585a60
movzx eax, word [ebx + 0x68]
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.00584510
mov eax, dword [esp + 0x84]
add esp, 0x28
test eax, eax
je 0x5806a2
cmp dword [edi], 0
jne 0x5806c4
add eax, 0x20
push eax
push 0x8d
push 0
push 1
push 1
push edi
call fcn.0057b520
add esp, 0x18
test eax, eax
je 0x5806a2
mov byte [eax], 0x89
cmp dword [edi], 0
jne 0x5806c4
push 0x18
push 0x8d
push 0
push 0xc
push 1
push edi
call fcn.0057b520
add esp, 0x18
test eax, eax
je 0x5806c4
mov byte [eax], 0x89
push 0
push 0xc
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
push 4
push 0x81
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
push 0xc
push 0x81
push 0
push 0xc
push 0x20
push edi
call fcn.00586ef0
add esp, 0x48
push 0
push 0x81
push 0
push 3
push 0x20
push edi
call fcn.00586ef0
push 0x28
push 0x81
push 0
push 1
push 0x25
push edi
call fcn.00586ef0
push 4
push 0x83
push 0
push 0xb
push 0x20
push edi
call fcn.00586ef0
add esp, 0x48
push 8
push 0x83
push 0
push 0xa
push 0x20
push edi
call fcn.00586ef0
push 1
push 0x40
push 0
push 1
push 0
push 1
push 0x60
push edi
call fcn.00587130
push 0
push 1
push 0x10
push 0x8d
push 0x20
push edi
call fcn.00586ef0
mov eax, dword [esp + 0xd0]
add esp, 0x50
cmp eax, dword [esp + 0x84]
jge 0x580793
lea eax, [esp + 0x30]
push eax
call fcn.00584380
add esp, 4
mov esi, dword [esp + 0x198]
cmp esi, 2
jne 0x5807b7
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x70]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov eax, dword [esp + 0x70]
test eax, eax
je 0x5807d4
push 0
push 0x40
push eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5807f1
push 0
push 0x40
push eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp dword [ebx + 0x40], 0
jl 0x5808f3
lea eax, [esp + 0x30]
push eax
call fcn.00581e00
push edi
mov dword [esp + 0x2c], eax
call fcn.00586cc0
add esp, 8
mov dword [esp + 0x10], eax
test dword [ebx + 0x40], 0x10000
jne 0x580900
cmp esi, 1
jne 0x58083d
lea eax, [esp + 0x30]
push eax
call fcn.0057d080
add esp, 4
test eax, eax
jne 0x580905
mov eax, dword [ebx + 0x48]
test al, 0x10
je 0x5808d0
mov eax, dword [esp + 0x34]
test byte [eax + 0x48], 0x20
movzx ecx, word [eax + 0x58]
mov esi, ecx
mov edx, ecx
je 0x5808b6
mov eax, 0xff
cmp cx, ax
ja 0x580874
mov eax, dword [esp + 0x90]
movzx edx, byte [esi + eax]
cmp ecx, 0x7f
jbe 0x5808b6
cmp dword [esp + 0x154], 0
jne 0x580888
cmp dword [esp + 0x15c], 0
je 0x5808b6
mov eax, esi
and esi, 0x7f
shr eax, 7
movzx eax, word [eax*2 + 0x68b2c8]
shl eax, 7
add eax, esi
movzx eax, word [eax*2 + 0x68f6c8]
lea eax, [eax + eax*2]
mov ax, word [eax*4 + 0x6870bc]
add ax, cx
movzx edx, ax
push 0
push edx
push ecx
lea eax, [esp + 0x3c]
push eax
call fcn.0057cc40
mov esi, dword [esp + 0x1a8]
add esp, 0x10
jmp 0x580900
test eax, 0x200
je 0x5808e3
lea eax, [esp + 0x30]
push eax
call fcn.0057da40
jmp 0x5808fd
test al, 0x40
je 0x580900
lea eax, [esp + 0x30]
push eax
call fcn.0057e160
jmp 0x5808fd
push edi
call fcn.00586cc0
mov dword [esp + 0x14], eax
add esp, 4
cmp esi, 1
jne 0x580955
cmp word [ebx + 0x66], 0
jbe 0x580955
test dword [ebx + 0x40], 0x10000
jne 0x580955
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
movzx eax, word [ebx + 0x66]
add eax, eax
push eax
push 0x40
push 0
push 2
push 0
push 3
push 0x60
push edi
call fcn.00587130
push 0
push 0xc
push 0
push 3
push 4
push edi
call fcn.005858e0
add esp, 0x50
mov dword [esp + 0x20], eax
cmp dword [esp + 0x5c], 0
je 0x580985
mov edx, dword [ebx + 0x48]
mov ecx, edx
movzx eax, word [ebx + 0x5c]
shr ecx, 4
and ecx, 1
shr edx, 8
push ecx
and edx, 1
push edx
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00584f40
add esp, 0x10
mov dword [esp + 0x28], eax
push 0
push 2
push dword [esp + 0x5c]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
push 0x10
push 0x8d
push 0
push 9
push 0x20
push edi
call fcn.00586ef0
mov eax, dword [esp + 0xa8]
add esp, 0x30
test eax, eax
je 0x5809d0
push 0
push 0x40
push eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x580a00
sub ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, 2
sar ecx, 1
push 0
push 2
mov eax, dword [eax + ecx*4]
sar eax, 3
push eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x54]
je 0x580a1f
push 0
push 2
push eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
cmp esi, 2
jne 0x580a75
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x70]
push 0x8d
push 1
push edi
call fcn.005858e0
push 0
push 2
push dword [esp + 0x84]
mov esi, eax
push 0x8d
push 0x20
push edi
call fcn.00586ef0
push edi
call fcn.00586cc0
add esp, 0x34
test esi, esi
je 0x580a92
test eax, eax
je 0x580a92
mov ecx, dword [esi + 8]
and ecx, 0xfffffffd
mov dword [esi + 0xc], eax
or ecx, 1
mov dword [esi + 8], ecx
jmp 0x580a92
cmp esi, 4
jne 0x580a92
push 0
push 2
push dword [esp + 0x6c]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
lea eax, [esp + 0x17c]
push eax
push ebp
push dword [esp + 0x40]
lea eax, [esp + 0x3c]
push eax
call fcn.00570940
add esp, 0x10
cmp dword [edi], 0
je 0x580b0a
push edi
call fcn.00587c70
push ebx
push dword [esp + 0x4c]
call fcn.00583560
push ebx
push dword [esp + 0x4c]
call fcn.00583560
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x5804f3
nop word [eax + eax]
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
mov edi, dword [eax]
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, edi
test edi, edi
jne 0x580ae0
lea eax, [edi - 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
test dword [ebx + 0x40], 0x20000000
je 0x580b2a
push 0
push 0xc
push 0
push 2
push 1
push edi
call fcn.005858e0
add esp, 0x18
mov ebp, eax
jmp 0x580b2c
xor ebp, ebp
cmp dword [esp + 0xa0], 0
je 0x580b5c
push dword [esp + 0x54]
push 0x8d
push 0
push 2
push 0
push edi
call fcn.005858e0
push edi
mov dword [esp + 0x48], eax
call fcn.00586cc0
add esp, 0x1c
mov dword [esp + 0x1c], eax
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x124]
add esp, 4
mov esi, eax
mov dword [esp + 0xf8], esi
test edx, edx
je 0x580ba0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x580b99
test esi, esi
je 0x580b99
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x580b80
movzx eax, word [ebx + 0x68]
inc eax
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00575bd0
push edi
call fcn.00586cc0
mov esi, dword [esp + 0x11c]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0xf4], ecx
mov dword [esp + 0xf0], ecx
test esi, esi
je 0x580bfb
mov edx, dword [esi]
test edx, edx
je 0x580bed
test ecx, ecx
je 0x580bed
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
mov esi, dword [esi + 4]
test esi, esi
jne 0x580bd4
mov ecx, dword [esp + 0xf4]
mov esi, dword [esp + 0x118]
test esi, esi
je 0x580c2d
mov edx, dword [esi]
test edx, edx
je 0x580c1f
test ecx, ecx
je 0x580c1f
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
mov esi, dword [esi + 4]
test esi, esi
jne 0x580c06
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x20]
test edx, edx
je 0x580c48
test ecx, ecx
je 0x580c48
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
push 9
push edi
call fcn.00586d30
push 0
push 1
push 0x20
push edi
call fcn.00587b20
add esp, 0x18
cmp dword [esp + 0x11c], 0
je 0x580cd9
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x120]
add esp, 4
mov esi, eax
test edx, edx
je 0x580ca0
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x580c99
test esi, esi
je 0x580c99
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x580c80
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
mov esi, dword [esp + 0x10c]
push 0x22
push edi
call fcn.00586c30
add esp, 0x20
test eax, eax
je 0x580cd9
test esi, esi
je 0x580cd9
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
test dword [ebx + 0x40], 0x20000000
je 0x580d02
push edi
call fcn.00586cc0
add esp, 4
test ebp, ebp
je 0x580d02
test eax, eax
je 0x580d02
mov ecx, dword [ebp + 8]
and ecx, 0xfffffffd
mov dword [ebp + 0xc], eax
or ecx, 1
mov dword [ebp + 8], ecx
mov esi, dword [esp + 0x198]
cmp esi, 1
je 0x580d6b
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x110]
add esp, 4
mov esi, eax
mov dword [esp + 0xec], esi
test edx, edx
je 0x580d50
nop dword [eax + eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x580d49
test esi, esi
je 0x580d49
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x580d30
push dword [esp + 0xf0]
lea eax, [esp + 0x34]
push eax
call fcn.00584620
mov esi, dword [esp + 0x1a0]
add esp, 8
cmp dword [esp + 0xa0], 0
je 0x580d82
push edi
call fcn.00586cc0
add esp, 4
mov dword [esp + 0x18], eax
push dword [esp + 0x184]
lea eax, [esp + 0x34]
push eax
call fcn.00569930
add esp, 8
cmp dword [edi], 0
push edi
je 0x580dee
call fcn.00587c70
push ebx
push dword [esp + 0x4c]
call fcn.00583560
push ebx
push dword [esp + 0x4c]
call fcn.00583560
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x5804f3
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
mov edi, dword [eax]
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, edi
test edi, edi
jne 0x580dc4
lea eax, [edi - 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
call fcn.00586cc0
add esp, 4
mov ebp, eax
cmp esi, 2
jne 0x580e79
push 0
push 0x40
push dword [esp + 0x70]
push 0x8d
push 1
push edi
call fcn.005858e0
push dword [esp + 0x70]
mov esi, eax
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x9c]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
add esp, 0x48
push 0
push 1
push dword [esp + 0x70]
push 0x8d
push 0x20
push edi
call fcn.00586ef0
push edi
call fcn.00586cc0
add esp, 0x1c
test esi, esi
je 0x580e79
test eax, eax
je 0x580e79
mov ecx, dword [esi + 8]
and ecx, 0xfffffffd
mov dword [esi + 0xc], eax
or ecx, 1
mov dword [esi + 8], ecx
cmp dword [ebx + 0x40], 0
jl 0x580e9c
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x580e9c
push eax
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
mov ecx, dword [esp + 0x7c]
test ecx, ecx
je 0x580eb9
sub ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, 2
sar ecx, 1
mov eax, dword [eax + ecx*4]
sar eax, 3
jmp 0x580ebd
mov eax, dword [esp + 0x58]
push eax
push 0x8d
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
mov eax, dword [ebx + 0x40]
add esp, 0x18
test eax, eax
js 0x580fbd
mov esi, dword [esp + 0xfc]
test esi, esi
je 0x580f7e
test eax, 0x100
jne 0x580fbd
cmp dword [esp + 0x6c], 0
push 0
push 0xc
push 0
je 0x580f64
push 4
push 0x20
push edi
call fcn.00586ef0
push 0
push 1
push 0
push 0xc
push 0x20
push edi
call fcn.00586ef0
mov esi, dword [esp + 0x12c]
push 0
push 1
push 0
push 2
push 2
push edi
call fcn.005858e0
add esp, 0x48
test eax, eax
je 0x580f4f
test esi, esi
je 0x580f4f
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
push 0
push 4
push 0
push 0xc
push 0x20
push edi
call fcn.00586ef0
add esp, 0x18
jmp 0x580fbd
push 2
push 2
push edi
call fcn.005858e0
add esp, 0x18
test eax, eax
je 0x580fbd
test esi, esi
je 0x580fbd
mov dword [eax + 0xc], esi
jmp 0x580fb1
cmp dword [esp + 0x6c], 0
mov ecx, 0xc
push 0
mov eax, 1
cmove eax, ecx
push eax
push 0
push 2
push 2
push edi
call fcn.005858e0
add esp, 0x18
test eax, eax
je 0x580fbd
mov edx, dword [esp + 0x24]
test edx, edx
je 0x580fbd
mov dword [eax + 0xc], edx
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
or ecx, 1
mov dword [eax + 8], ecx
mov esi, dword [esp + 0x28]
test esi, esi
je 0x580ff0
push edi
call fcn.00586cc0
add esp, 4
mov edx, eax
mov ecx, dword [esi]
test ecx, ecx
je 0x580fe9
test edx, edx
je 0x580fe9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edx
or eax, 1
mov dword [ecx + 8], eax
mov esi, dword [esi + 4]
test esi, esi
jne 0x580fd0
cmp dword [esp + 0x198], 2
jne 0x581030
mov esi, dword [esp + 0xec]
push 0xffffffffffffffff
push 0x40
push dword [esp + 0x70]
push 0x8d
push 1
push edi
call fcn.005858e0
add esp, 0x18
test eax, eax
je 0x581030
test esi, esi
je 0x581030
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
push 0xffffffffffffffff
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
mov esi, dword [esp + 0x108]
push 0x22
push edi
call fcn.00586c30
add esp, 0x20
test eax, eax
je 0x581069
test esi, esi
je 0x581069
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
lea eax, [esp + 0x30]
push eax
call fcn.0057e9a0
add esp, 4
cmp dword [esp + 0xa0], 0
je 0x5811a3
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x30]
add esp, 4
test edx, edx
je 0x5810a8
test eax, eax
je 0x5810a8
mov ecx, dword [edx + 8]
and ecx, 0xfffffffd
mov dword [edx + 0xc], eax
or ecx, 1
mov dword [edx + 8], ecx
push 0
push 8
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
push 0x30
push 0x81
push 0
push 3
push 0x25
push edi
call fcn.00586ef0
push 4
push 0x40
push 0
push 3
push 0x265
push edi
call fcn.00587520
add esp, 0x48
push 1
push edi
call fcn.00586c30
mov esi, dword [esp + 0x20]
add esp, 8
test eax, eax
je 0x581107
test esi, esi
je 0x581107
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
push 8
push 0x40
push 0
push 3
push 0x265
push edi
call fcn.00587520
push 0
push edi
call fcn.00586c30
add esp, 0x20
test eax, eax
je 0x581140
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x581140
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
push 4
push 0x81
push 0
push 3
push 0x20
push edi
call fcn.00586ef0
push 0
push 2
push 0
push 3
push 1
push edi
call fcn.005858e0
add esp, 0x30
test eax, eax
je 0x581181
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x581181
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
push 0x22
push edi
call fcn.00586c30
add esp, 8
test eax, eax
je 0x5811a3
test esi, esi
je 0x5811a3
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
mov eax, dword [esp + 0x104]
mov esi, dword [esp + 0xf0]
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x108], eax
mov dword [esp + 0xb4], 1
test eax, eax
je 0x5812c0
mov eax, dword [esp + 0x14]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, 7
sar eax, 3
push ebx
push eax
mov dword [esp + 0x90], eax
call fcn.00583580
add esp, 8
mov dword [esp + 0x8c], eax
test eax, eax
je 0x581263
nop dword [eax + eax]
lea eax, [esp + 0x30]
push eax
call fcn.00571150
add esp, 4
cmp dword [edi], 0
jne 0x581253
lea eax, [esp + 0x30]
push eax
call fcn.0057e9a0
mov eax, dword [esp + 0x10c]
add esp, 4
mov eax, dword [eax]
mov dword [esp + 0x108], eax
test eax, eax
jne 0x581220
push ebx
push dword [esp + 0x90]
call fcn.00583560
add esp, 8
cmp dword [esp + 0x108], 0
je 0x5812c0
push edi
call fcn.00587c70
push ebx
push dword [esp + 0x4c]
call fcn.00583560
push ebx
push dword [esp + 0x4c]
call fcn.00583560
mov eax, dword [esp + 0x54]
add esp, 0x14
test eax, eax
je 0x5804f3
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
mov edi, dword [eax]
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, edi
test edi, edi
jne 0x581296
lea eax, [edi - 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
push edi
mov dword [esp + 0xb8], 0
mov dword [esp + 0xf4], esi
call fcn.00586cc0
mov edx, dword [esp + 0x12c]
add esp, 4
mov esi, eax
test edx, edx
je 0x581308
mov ecx, dword [edx]
test ecx, ecx
je 0x581301
test esi, esi
je 0x581301
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5812e8
push 0
push 0x8d
push edi
call fcn.00586100
push 0
push 2
push 4
push 0x8d
push 0x20
push edi
call fcn.00586ef0
push 0
push 8
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
push 0x2000
push 0x40
push 0
push 0xa
push 0
push 2
push 0x62
push edi
call fcn.00587130
add esp, 0x5c
push 0
push 0x81
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
push 0
push 3
push 0
push 0xa
push 0x20
push edi
call fcn.00586ef0
push fcn.005884a0
push 0x40
push 0x111
push 0x24
push edi
call fcn.00586730
add esp, 0x44
push 0
push 0x40
push 0
push 1
push 0
push edi
call fcn.005858e0
push 0
push 0xa
push 0
push 3
push 0x20
push edi
mov esi, eax
call fcn.00586ef0
push 0
push 1
push 0
push 0xa
push 0x20
push edi
call fcn.00586ef0
add esp, 0x48
push 0
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
push 4
push 0x8d
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
push 0
push 1
push 0x80
push edi
call fcn.005878f0
add esp, 0x40
push edi
call fcn.00586cc0
add esp, 4
test esi, esi
je 0x581419
test eax, eax
je 0x581419
mov ecx, dword [esi + 8]
and ecx, 0xfffffffd
mov dword [esi + 0xc], eax
or ecx, 1
mov dword [esi + 8], ecx
push 0xffffffffffffffd2
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
mov esi, dword [esp + 0x108]
push 0x22
push edi
call fcn.00586c30
add esp, 0x20
test eax, eax
je 0x581452
test esi, esi
je 0x581452
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x128]
add esp, 4
mov esi, eax
test edx, edx
je 0x581488
mov ecx, dword [edx]
test ecx, ecx
je 0x581481
test esi, esi
je 0x581481
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581468
push 0xffffffffffffffd1
push 0x40
push 0
push 1
push 0x20
push edi
call fcn.00586ef0
mov esi, dword [esp + 0x108]
push 0x22
push edi
call fcn.00586c30
add esp, 0x20
test eax, eax
je 0x5814c1
test esi, esi
je 0x5814c1
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], esi
or ecx, 1
mov dword [eax + 8], ecx
cmp dword [esp + 0x12c], 0
je 0x58150e
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x130]
add esp, 4
mov esi, eax
test edx, edx
je 0x581501
mov ecx, dword [edx]
test ecx, ecx
je 0x5814fa
test esi, esi
je 0x5814fa
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5814e1
lea eax, [esp + 0x30]
push eax
call fcn.00578c50
add esp, 4
cmp dword [esp + 0x130], 0
je 0x58155d
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x134]
add esp, 4
mov esi, eax
test edx, edx
je 0x581550
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x581549
test esi, esi
je 0x581549
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581530
lea eax, [esp + 0x30]
push eax
call fcn.00567ec0
add esp, 4
cmp dword [esp + 0x134], 0
je 0x581664
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x138]
add esp, 4
mov esi, eax
test edx, edx
je 0x5815a1
mov ecx, dword [edx]
test ecx, ecx
je 0x58159a
test esi, esi
je 0x58159a
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581581
mov esi, dword [esp + 0x30]
push 0
push 5
push esi
call fcn.00586100
push 0xa
push 0x40
push 0
push 1
push 0
push 1
push 0x62
push esi
call fcn.00587130
add esp, 0x2c
cmp dword [esi], 0
jne 0x5815dc
push 3
push 0x40
push 0
push 1
push esi
call fcn.00579810
add esp, 0x14
push 5
push 0
push 3
push 0x20
push esi
call fcn.00587620
add esp, 0x14
cmp dword [esi], 0
jne 0x581603
push 0x7b
push 0x40
push 0
push 1
push esi
call fcn.00579810
add esp, 0x14
push 0
push 0
push 3
push 0x66
push esi
call fcn.00587620
push 1
push 0x40
push 0
push 1
push 0
push 1
push 0x66
push esi
call fcn.00587130
add esp, 0x34
cmp dword [esi], 0
jne 0x581641
push 0x201f
push 0x40
push 0
push 1
push esi
call fcn.00579810
add esp, 0x14
push 0
push 0
push 3
push 0x266
push esi
call fcn.00587620
push 0
push 5
push 0x80
push esi
call fcn.005878f0
add esp, 0x24
cmp dword [esp + 0x138], 0
je 0x5816b1
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x13c]
add esp, 4
mov esi, eax
test edx, edx
je 0x5816a4
mov ecx, dword [edx]
test ecx, ecx
je 0x58169d
test esi, esi
je 0x58169d
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581684
lea eax, [esp + 0x30]
push eax
call fcn.005674c0
add esp, 4
cmp dword [esp + 0x13c], 0
je 0x5817b8
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x140]
add esp, 4
mov esi, eax
test edx, edx
je 0x5816f5
mov ecx, dword [edx]
test ecx, ecx
je 0x5816ee
test esi, esi
je 0x5816ee
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5816d5
mov esi, dword [esp + 0x30]
push 0
push 5
push esi
call fcn.00586100
push 0xa
push 0x40
push 0
push 1
push 0
push 1
push 0x62
push esi
call fcn.00587130
add esp, 0x2c
cmp dword [esi], 0
jne 0x581730
push 3
push 0x40
push 0
push 1
push esi
call fcn.00579810
add esp, 0x14
push 5
push 0
push 3
push 0x20
push esi
call fcn.00587620
add esp, 0x14
cmp dword [esi], 0
jne 0x581757
push 0x7b
push 0x40
push 0
push 1
push esi
call fcn.00579810
add esp, 0x14
push 0
push 0
push 3
push 0x66
push esi
call fcn.00587620
push 1
push 0x40
push 0
push 1
push 0
push 1
push 0x66
push esi
call fcn.00587130
add esp, 0x34
cmp dword [esi], 0
jne 0x581795
push 0x201f
push 0x40
push 0
push 1
push esi
call fcn.00579810
add esp, 0x14
push 0
push 0
push 3
push 0x266
push esi
call fcn.00587620
push 0
push 5
push 0x80
push esi
call fcn.005878f0
add esp, 0x24
cmp dword [esp + 0x140], 0
je 0x581805
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x144]
add esp, 4
mov esi, eax
test edx, edx
je 0x5817f8
mov ecx, dword [edx]
test ecx, ecx
je 0x5817f1
test esi, esi
je 0x5817f1
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5817d8
lea eax, [esp + 0x30]
push eax
call fcn.00577ee0
add esp, 4
cmp dword [esp + 0x144], 0
je 0x581852
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x148]
add esp, 4
mov esi, eax
test edx, edx
je 0x581845
mov ecx, dword [edx]
test ecx, ecx
je 0x58183e
test esi, esi
je 0x58183e
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581825
lea eax, [esp + 0x30]
push eax
call fcn.00578080
add esp, 4
cmp dword [esp + 0x148], 0
je 0x58190c
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x14c]
add esp, 4
mov esi, eax
test edx, edx
je 0x581896
mov ecx, dword [edx]
test ecx, ecx
je 0x58188f
test esi, esi
je 0x58188f
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581876
movzx eax, word [ebx + 0x68]
lea eax, [eax*2 + 2]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.00578aa0
push 0
push 1
push 0
push 2
push 4
push edi
call fcn.005858e0
add esp, 0x20
test eax, eax
je 0x5818da
mov edx, dword [esp + 0x10]
test edx, edx
je 0x5818da
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
push 0
push 1
push 0
push 2
push 0x20
push edi
call fcn.00586ef0
push 0x22
push edi
call fcn.00586c30
add esp, 0x20
test eax, eax
je 0x58190c
test ebp, ebp
je 0x58190c
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], ebp
or ecx, 1
mov dword [eax + 8], ecx
cmp dword [esp + 0x16c], 0
je 0x58195d
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x170]
add esp, 4
mov esi, eax
test edx, edx
je 0x581950
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x581949
test esi, esi
je 0x581949
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581930
lea eax, [esp + 0x30]
push eax
call fcn.00579260
add esp, 4
cmp dword [esp + 0x170], 0
je 0x5819ad
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x174]
add esp, 4
mov esi, eax
test edx, edx
je 0x5819a0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x581999
test esi, esi
je 0x581999
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581980
lea eax, [esp + 0x30]
push eax
call fcn.00579400
add esp, 4
cmp dword [esp + 0x174], 0
je 0x5819fd
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x178]
add esp, 4
mov esi, eax
test edx, edx
je 0x5819f0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x5819e9
test esi, esi
je 0x5819e9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5819d0
lea eax, [esp + 0x30]
push eax
call fcn.00578ef0
add esp, 4
cmp dword [esp + 0x178], 0
je 0x581a4d
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x17c]
add esp, 4
mov esi, eax
test edx, edx
je 0x581a40
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x581a39
test esi, esi
je 0x581a39
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581a20
lea eax, [esp + 0x30]
push eax
call fcn.00579080
add esp, 4
cmp dword [esp + 0x164], 0
je 0x581a9d
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x168]
add esp, 4
mov esi, eax
test edx, edx
je 0x581a90
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x581a89
test esi, esi
je 0x581a89
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581a70
lea eax, [esp + 0x30]
push eax
call fcn.00578830
add esp, 4
cmp dword [esp + 0x168], 0
je 0x581aed
push edi
call fcn.00586cc0
mov edx, dword [esp + 0x16c]
add esp, 4
mov esi, eax
test edx, edx
je 0x581ae0
nop dword [eax]
mov ecx, dword [edx]
test ecx, ecx
je 0x581ad9
test esi, esi
je 0x581ad9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], esi
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x581ac0
lea eax, [esp + 0x30]
push eax
call fcn.00578940
add esp, 4
push ebx
push dword [esp + 0x48]
call fcn.00583560
push ebx
push dword [esp + 0x48]
call fcn.00583560
push edi
call fcn.00587e50
mov ebp, eax
mov eax, dword [edi + 0x54]
push edi
mov dword [esp + 0x28], eax
call fcn.00587c70
add esp, 0x18
test ebp, ebp
jne 0x581b5a
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5804f3
nop dword [eax]
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
mov edi, dword [eax]
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, edi
test edi, edi
jne 0x581b30
lea eax, [edi - 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
mov esi, dword [ebx + 0x10]
test esi, esi
jne 0x581bcf
push ebx
push 0x2c
call fcn.00583580
mov esi, eax
add esp, 8
test esi, esi
jne 0x581bb1
push ebp
call fcn.00587ce0
mov eax, dword [esp + 0x44]
add esp, 4
test eax, eax
je 0x5804f3
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
mov edi, dword [eax]
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, edi
test edi, edi
jne 0x581b87
lea eax, [edi - 0x30]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
push 0x2c
push 0
push esi
call fcn.00591af0
movzx eax, word [ebx + 0x68]
add esp, 0xc
inc eax
mov dword [esi + 0x24], eax
mov eax, dword [ebx + 0x50]
mov dword [esi + 0x28], eax
mov dword [ebx + 0x10], esi
mov eax, dword [esp + 0x198]
xor ecx, ecx
cmp eax, 1
je 0x581be4
cmp eax, 2
setne cl
inc ecx
mov dword [esi + ecx*4], ebp
mov eax, dword [esp + 0x40]
mov dword [esi + ecx*4 + 0xc], eax
mov eax, dword [esp + 0x10]
pop edi
mov dword [esi + ecx*4 + 0x18], eax
xor eax, eax
pop esi
pop ebp
pop ebx
add esp, 0x180
ret
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
push eax
call dword [0x5c53f0]
call esi
add esp, 8
mov eax, dword [edi + 0x34]
test eax, eax
je 0x581c33
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
push eax
call dword [0x5c53f0]
call esi
add esp, 8
push dword [ebx + 8]
mov esi, dword [ebx + 4]
mov ecx, esi
push edi
call dword [0x5c53f0]
call esi
add esp, 8
push ebx
push dword [esp + 0x48]
call fcn.00583560
push ebx
push dword [esp + 0x48]
jmp 0x5804eb
pop esi
pop ebp
mov eax, 0xffffffd4
pop ebx
add esp, 0x180
ret