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

Disassembly:
sub esp, 0x3c
mov edx, dword [esp + 0x44]
push ebx
mov ebx, dword [esp + 0x44]
push ebp
push esi
push edi
sub edx, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov edi, dword [ebx]
mov dword [esp + 0x30], 0
lea eax, [edx + 2]
sar edx, 1
sar eax, 1
mov ebp, dword [ecx + eax*4]
xor eax, eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x38], 0
mov ecx, dword [ecx + edx*4]
test ecx, ecx
mov edx, 4
mov dword [esp + 0x24], ecx
setne al
test ecx, ecx
lea eax, [eax*2 + 0x8b]
mov dword [esp + 0x1c], eax
lea eax, [ecx + 4]
cmovne edx, eax
cmp dword [edi], 0
mov dword [esp + 0x3c], edx
jne 0x5788ff
push 0x24
push edi
call fcn.00583880
add esp, 8
mov esi, eax
cmp dword [edi], 0
mov dword [esp + 0x40], esi
jne 0x5788ff
mov ecx, dword [esp + 0x58]
xorps xmm0, xmm0
movups xmmword [esi], xmm0
movups xmmword [esi + 0x10], xmm0
mov dword [esi + 0x20], 0
mov eax, dword [ecx + 8]
mov dword [esi], eax
mov eax, dword [esp + 0x54]
mov dword [esi + 0x10], eax
mov eax, ebp
and eax, 7
sar ebp, 3
mov dword [ecx + 8], esi
cmp dword [ebx + 0x50], 0
mov dword [esp + 0x48], eax
mov dword [esp + 0x28], ebp
jne 0x577628
cmp dword [ebx + 0x4c], 0
jne 0x577628
mov dword [esp + 0x28], 0
mov dword [esp + 0x48], 0
jmp 0x577665
cmp eax, 1
jne 0x577665
push ebp
push 0x8d
push 0
push 2
push 5
push edi
call fcn.0058d8e0
add esp, 0x18
mov ebp, eax
cmp dword [edi], 0
jne 0x577665
push 8
push edi
call fcn.00583880
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x577665
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov dword [ecx], ebp
mov dword [esi + 0xc], ecx
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x20]
push eax
push dword [esp + 0x68]
push ebx
call fcn.005870e0
mov ecx, dword [esp + 0x3c]
add esp, 0x1c
mov dword [esp + 0x2c], eax
cmp cx, 0x16
je 0x5776a2
mov ebp, 4
xor eax, eax
jmp 0x5776ac
mov ebp, 0x8d
mov eax, 8
mov edx, dword [esp + 0x44]
mov dword [esp + 0x18], eax
cmp edx, 1
jbe 0x577832
cmp dword [ebx + 0x68], 1
jne 0x577779
cmp dword [ebx + 0x124], 0
jne 0x577779
cmp cx, 0x11
je 0x577779
cmp cx, 0x16
je 0x577779
lea eax, [edx + edx]
push eax
push 0x40
push 0
push 2
push 0
push 1
push 0x60
push edi
call fcn.0058f130
push 0
push 0xc
push 0
push 1
push 4
push edi
add esi, 0xc
call fcn.0058d8e0
push eax
push esi
push edi
call fcn.0056ec80
add esp, 0x44
push dword [esp + 0x44]
push 0x40
push dword [esp + 0x20]
push ebp
push 0x20
push edi
call fcn.0058eef0
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x3c]
push 0
push esi
push dword [esp + 0x50]
mov dword [esp + 0x6c], eax
push ecx
push ebx
call fcn.00575330
mov eax, dword [esp + 0x48]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
add esp, 0x50
push 1
push edi
call fcn.0058ec30
mov esi, dword [esp + 0x48]
add esp, 8
jmp 0x577813
cmp dword [edi], 0
jne 0x5777d2
cmp ebp, 0x8d
lea ecx, [eax + 0x20]
cmovne ecx, eax
cmp ebp, 9
ja 0x57779e
lea eax, [ebp*4 - 8]
push eax
push 0x8d
jmp 0x5777bd
cmp ebp, 0x3f
ja 0x5777bb
mov al, byte [ebp + 0x69c728]
or al, 0xb8
push edx
movzx eax, al
push eax
push edi
call fcn.00581d40
add esp, 0xc
jmp 0x5777d2
push ecx
push ebp
push edx
push 0x40
push 1
push edi
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x5777d2
mov byte [eax], 0xc7
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x24]
push 1
mov dword [esp + 0x4c], eax
lea eax, [esi + 0xc]
push eax
push dword [esp + 0x38]
push ecx
push ebx
call fcn.00575330
mov eax, dword [esp + 0x30]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
push 1
push edi
call fcn.0058ec30
add esp, 0x40
mov ecx, eax
test ecx, ecx
je 0x577848
mov edx, dword [esp + 0x44]
test edx, edx
je 0x577848
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], edx
jmp 0x577848
jne 0x577848
push 1
lea eax, [esi + 0xc]
push eax
push dword [esp + 0x34]
push ecx
push ebx
call fcn.00575330
add esp, 0x14
cmp dword [esp + 0x48], 2
jne 0x57792c
cmp dword [edi], 0
jne 0x57787b
mov eax, dword [esp + 0x28]
add eax, 0x20
push eax
push 0x8d
push 0
push 1
push 1
push edi
call fcn.00583520
add esp, 0x18
test eax, eax
je 0x57787b
mov byte [eax], 0x8b
mov eax, dword [esp + 0x28]
add eax, 4
push eax
push 0x8d
push 0
push 3
push 0x20
push edi
mov dword [esp + 0x5c], eax
call fcn.0058eef0
push 0
push 3
push 0
push 1
push 0
push 1
push 0x62
push edi
call fcn.0058f130
push 0
push 3
push 0
push 2
push 0
push 3
push 0x62
push edi
call fcn.0058f130
add esp, 0x58
push 0
push 1
push 0
push 3
push 5
push edi
call fcn.0058d8e0
add esp, 0x18
mov dword [esp + 0x48], eax
cmp dword [edi], 0
jne 0x5778ff
push 8
push edi
call fcn.00583880
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x5778ff
mov eax, dword [esi + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x48]
mov dword [ecx], eax
mov dword [esi + 0xc], ecx
push 0
push 2
push dword [esp + 0x30]
push 0x8d
push 0x20
push edi
call fcn.0058eef0
push 0
push 2
push dword [esp + 0x64]
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x30
mov dx, word [esp + 0x10]
movzx eax, dx
add eax, 0xffffffdf
cmp eax, 0xc
ja case.0x577940.35
jmp dword [eax*4 + 0x57890c]
mov eax, dword [esp + 0x20]
cmp ax, 0x11
je 0x5781cd
cmp ax, 0x16
je 0x5781cd
cmp ax, 0xd
jne 0x577aed
cmp dword [ebx + 0x128], 0
jne 0x577aed
cmp dx, 0x21
jne 0x577a10
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x577993
push 2
push ebx
call fcn.0056ecb0
add esp, 8
push 0
push 0xc
push ebp
mov ebp, dword [esp + 0x28]
push ebp
push 0x20
push edi
call fcn.0058eef0
push 0
push 2
push dword [esp + 0x5c]
push ebp
push 0x20
push edi
call fcn.0058eef0
push 0
push 0xc
push 0
push 2
push 0x20
push edi
call fcn.0058eef0
add esp, 0x48
push ebx
call fcn.0058bda0
mov eax, dword [esp + 0x2c]
add esp, 4
test eax, eax
je 0x5779ef
push 0
push 0xc
push eax
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
push edi
call fcn.0058ecc0
add esp, 4
push ebx
mov dword [esi + 0x14], eax
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
cmp dword [ebx + 0x124], 0
jne 0x577aed
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x577a30
push 2
push ebx
call fcn.0056ecb0
add esp, 8
push 0
push 2
push dword [esp + 0x44]
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x48]
add eax, eax
push eax
push 0x40
push 0
push 2
push 0
push 2
push 0x60
push edi
call fcn.0058f130
add esp, 0x38
cmp dword [ebx + 0x68], 1
push 0
push 0xc
push 0
push 2
jne 0x577a8c
push 0x1062
push edi
call fcn.0058f520
push 0
push 0xc
push 2
push 4
push edi
call fcn.0058d780
add esp, 0x2c
jmp 0x577ac4
push 5
push edi
call fcn.0058d8e0
push ebx
mov dword [esp + 0x64], eax
call fcn.0058bda0
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x68]
add esp, 0x20
mov edx, eax
test ecx, ecx
je 0x577ac4
test edx, edx
je 0x577ac4
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edx
or eax, 1
mov dword [ecx + 8], eax
push 0
push 2
push ebp
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x40]
add esp, 0x18
test eax, eax
je 0x5779ef
push 0
push 2
jmp 0x5779de
xor ecx, ecx
mov dword [esp + 0x40], ecx
cmp ax, 0x1d
je 0x577b8e
cmp ax, 0x1e
je 0x577b8e
mov eax, dword [esp + 0x34]
movzx eax, word [eax]
mov dword [esp + 0x44], eax
cmp eax, 0x1d
je 0x577b1c
cmp eax, 0x1e
jne 0x577b8e
cmp dword [ebx + 0x124], ecx
je 0x577b4c
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], 0xfc00
mov ax, word [eax + 2]
and ax, word [esp + 0x48]
mov dword [esp + 0x48], 0xd800
cmp ax, word [esp + 0x48]
je 0x577b8e
mov eax, dword [esp + 0x44]
cmp ax, 0x1e
jne 0x577d28
mov eax, dword [esp + 0x34]
add eax, 2
push eax
push ebx
mov dword [esp + 0x50], eax
call fcn.0056f390
add esp, 8
test eax, eax
je 0x577d21
push dword [esp + 0x48]
push ebx
call fcn.0056f280
mov ecx, eax
add esp, 8
mov dword [esp + 0x40], ecx
test ecx, ecx
jne 0x577d23
cmp dword [esp + 0x24], 0
jne 0x577ba0
push 2
push ebx
call fcn.0056ecb0
add esp, 8
push 0
push 2
push dword [esp + 0x44]
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
cmp dword [ebx + 0x124], 0
je 0x577bd7
push 0
push 2
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
cmp word [esp + 0x10], 0x27
jne 0x577bf5
push dword [esp + 0x30]
push 0x40
push dword [esp + 0x20]
push ebp
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.0057f8a0
push edi
call fcn.0058ecc0
push 0
mov dword [esp + 0x58], eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x40]
push dword [esp + 0x38]
push ebx
call fcn.00575330
add esp, 0x20
cmp dword [ebx + 0x124], 0
je 0x577c42
push 0
push 2
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
cmp word [esp + 0x10], 0x27
jne 0x577c78
mov eax, dword [esp + 0x18]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
push 0
push edi
call fcn.0058ec30
push eax
lea eax, [esp + 0x40]
push eax
push edi
call fcn.0056ec80
add esp, 0x34
push dword [esp + 0x48]
push ebx
call fcn.0057fa40
push 2
push 0x40
push 0
push 2
push 0
push 2
push 0x60
push edi
call fcn.0058f130
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x64]
add esp, 0x2c
mov dword [esp + 0x40], esi
mov ebp, eax
test edx, edx
je 0x577cd1
mov dword [esp + 0x40], esi
mov ecx, dword [edx]
test ecx, ecx
je 0x577cca
test ebp, ebp
je 0x577cca
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebp
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x577cb1
cmp dword [ebx + 0x124], 0
je 0x578120
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x18]
add esp, 4
mov esi, eax
test edx, edx
je 0x577d11
mov ecx, dword [edx]
test ecx, ecx
je 0x577d0a
test esi, esi
je 0x577d0a
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 0x577cf1
mov eax, dword [esp + 0x24]
mov ecx, 2
xor edx, edx
jmp 0x578179
xor ecx, ecx
mov dx, word [esp + 0x10]
mov eax, dword [esp + 0x34]
add dword [esp + 0x34], 4
movzx eax, word [eax + 2]
mov dword [esp + 0x48], eax
test ecx, 0x100
je 0x577d4b
movzx ecx, cl
shl ecx, 8
mov dword [esp + 0x40], ecx
test ecx, ecx
je 0x577d55
or eax, ecx
mov dword [esp + 0x48], eax
mov dword [esi + 0x20], 1
mov word [esi + 0x1c], ax
mov dword [esi + 0x18], ecx
cmp dx, 0x27
jne 0x577d81
mov eax, dword [esp + 0x30]
inc eax
push eax
push 0x40
push dword [esp + 0x20]
push ebp
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
push 0x22
push edi
call fcn.0058ec30
push edi
mov dword [esp + 0x50], eax
call fcn.0058ecc0
add esp, 0xc
mov dword [esp + 0x30], eax
cmp word [esp + 0x10], 0x27
lea eax, [esi + 0xc]
jne 0x577dd5
mov eax, dword [esp + 0x18]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
push 0
push edi
call fcn.0058ec30
push eax
lea eax, [esi + 0xc]
push eax
push edi
call fcn.0056ec80
add esp, 0x34
lea eax, [esi + 0xc]
mov ecx, dword [esp + 0x20]
push 0
push eax
push dword [esp + 0x34]
push ecx
push ebx
call fcn.00575330
mov eax, dword [esp + 0x3c]
add esp, 0x14
test eax, eax
je 0x577e07
push 0
push 2
push eax
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x48]
add esp, 4
mov edx, eax
test ecx, ecx
je 0x577e2d
test edx, edx
je 0x577e2d
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edx
or eax, 1
mov dword [ecx + 8], eax
lea eax, [esi + 0xc]
push eax
push ebx
call fcn.0057f8a0
push 0
push 0x82
push 0
push 1
push 0x23
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x60]
add esp, 0x20
test eax, eax
je 0x577e6b
push eax
push 0x40
push 0
push 1
push 0
push 1
push 0x66
push edi
call fcn.0058f130
add esp, 0x20
mov eax, dword [esp + 0x48]
movzx eax, ax
push eax
push 0x40
push 0
push 1
push 1
push edi
mov dword [esp + 0x60], eax
call fcn.0058d8e0
mov ecx, eax
add esp, 0x18
test ecx, ecx
je 0x577ea5
mov edx, dword [esp + 0x30]
test edx, edx
je 0x577ea5
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edx
or eax, 1
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x577ebc
push 2
push ebx
call fcn.0056ecb0
mov eax, dword [esp + 0x2c]
add esp, 8
push 0
push 2
push eax
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
push 0
push 2
push dword [esp + 0x5c]
push dword [esp + 0x40]
push 0x20
push edi
call fcn.0058eef0
add esp, 0x30
cmp word [esp + 0x10], 0x27
jne 0x577f1a
mov eax, dword [esp + 0x18]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
push 0
push edi
call fcn.0058ec30
push eax
lea eax, [esp + 0x40]
push eax
push edi
call fcn.0056ec80
add esp, 0x34
push edi
call fcn.0058ecc0
push 0
mov dword [esp + 0x44], eax
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x38]
push dword [esp + 0x30]
push ebx
call fcn.00575330
mov eax, dword [esp + 0x40]
add esp, 0x18
test eax, eax
je 0x577f59
push 0
push 2
push eax
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.0057f8a0
push 0
push 0x82
push 0
push 1
push 0x23
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x60]
add esp, 0x20
test eax, eax
je 0x577f98
push eax
push 0x40
push 0
push 1
push 0
push 1
push 0x66
push edi
call fcn.0058f130
add esp, 0x20
push dword [esp + 0x48]
push 0x40
push 0
push 1
push 1
push edi
call fcn.0058d8e0
cmp word [esp + 0x28], 0x21
jne 0x578017
mov ebp, dword [esp + 0x54]
mov ecx, eax
add esp, 0x18
test ecx, ecx
je 0x577fd2
test ebp, ebp
je 0x577fd2
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebp
or eax, 1
mov dword [ecx + 8], eax
push 0
push 2
push dword [esp + 0x2c]
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
push 0x22
push edi
call fcn.0058ec30
mov ecx, eax
add esp, 0x20
test ecx, ecx
je 0x578094
test ebp, ebp
je 0x578094
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebp
or eax, 1
mov dword [ecx + 8], eax
jmp 0x578094
push 0
push 2
push dword [esp + 0x44]
mov dword [esp + 0x6c], eax
push dword [esp + 0x40]
push 0x20
push edi
call fcn.0058eef0
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x7c]
add esp, 0x34
mov edx, eax
test ecx, ecx
je 0x578055
test edx, edx
je 0x578055
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], edx
or eax, 1
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x18]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
push 1
push edi
call fcn.0058ec30
mov edx, eax
add esp, 0x28
test edx, edx
je 0x578094
mov ecx, dword [esp + 0x3c]
test ecx, ecx
je 0x578094
mov eax, dword [edx + 8]
and eax, 0xfffffffd
mov dword [edx + 0xc], ecx
or eax, 1
mov dword [edx + 8], eax
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x40], esi
mov ebp, eax
test edx, edx
je 0x5780d0
mov dword [esp + 0x40], esi
nop
mov ecx, dword [edx]
test ecx, ecx
je 0x5780c9
test ebp, ebp
je 0x5780c9
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
mov dword [ecx + 0xc], ebp
or eax, 1
mov dword [ecx + 8], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5780b0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
push 2
push 0x40
push ebp
push esi
push 0
push 2
push 0x60
push edi
call fcn.0058f130
push 0
push 2
push ebp
push esi
push 0x20
push edi
call fcn.0058eef0
add esp, 0x38
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x44]
add esp, 4
push ebx
mov dword [ecx + 0x14], eax
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push 2
push 0x40
push 0
push 2
push 0
push 2
push 0x62
push edi
call fcn.0058f130
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x38]
add esp, 0x24
mov esi, eax
test edx, edx
je 0x578167
mov ecx, dword [edx]
test ecx, ecx
je 0x578160
test esi, esi
je 0x578160
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 0x578147
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], 2
push eax
push dword [esp + 0x20]
push edx
push ecx
push 0x20
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x40]
add esp, 0x18
test eax, eax
je 0x5781a8
push 0
push 2
push eax
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
push edi
call fcn.0058ecc0
mov ecx, dword [esp + 0x44]
add esp, 4
push ebx
mov dword [ecx + 0x14], eax
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push 2
push ebx
call fcn.0056ecb0
push 0
push 2
push 0
push 0x8b
push 0x20
push edi
call fcn.0058eef0
push 0
push 0x40
push 4
push 0x8b
push 0x20
push edi
call fcn.0058eef0
mov bp, word [esp + 0x48]
add esp, 0x38
cmp bp, 0x27
jne 0x578221
push dword [esp + 0x30]
push 0x40
push 8
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
push edi
call fcn.0058ecc0
push 1
mov dword [esp + 0x50], eax
lea eax, [esi + 0x18]
push eax
push dword [esp + 0x38]
push dword [esp + 0x30]
push ebx
call fcn.00575330
add esp, 0x18
cmp bp, 0x27
jne 0x578297
push 8
push 0x8d
push 0
push 1
push 0x20
push edi
call fcn.0058eef0
push 1
push 0x40
push 0
push 1
push 0
push 1
push 0x262
push edi
call fcn.0058f130
push 0
push edi
call fcn.0058ec30
add esp, 0x40
mov ebp, eax
push 0
push 1
push 8
push 0x8d
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
jmp 0x578299
xor ebp, ebp
push 1
push ebx
call fcn.0056ecb0
push 0
push 2
push 0
push 0x8b
push 0x20
push edi
call fcn.0058eef0
push 0x22
push edi
call fcn.0058ec30
add esp, 0x28
test eax, eax
je 0x5782da
mov edx, dword [esp + 0x48]
test edx, edx
je 0x5782da
mov ecx, dword [eax + 8]
and ecx, 0xfffffffd
mov dword [eax + 0xc], edx
or ecx, 1
mov dword [eax + 8], ecx
test ebp, ebp
je 0x5782fa
push edi
call fcn.0058ecc0
add esp, 4
test eax, eax
je 0x5782fa
mov ecx, dword [ebp + 8]
and ecx, 0xfffffffd
mov dword [ebp + 0xc], eax
or ecx, 1
mov dword [ebp + 8], ecx
push edi
call fcn.0058ecc0
add esp, 4
mov dword [esi + 0x14], eax
push ebx
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x57832e
push 1
push ebx
call fcn.0056ecb0
add esp, 8
push 0
push 2
push ebp
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
push edi
call fcn.0058ecc0
add esp, 0x1c
mov dword [esi + 0x14], eax
mov eax, dword [esp + 0x28]
test eax, eax
je case.0x577940.35
push 0
push 2
push eax
push 0x8d
jmp 0x5788df
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x578379
push 2
push ebx
call fcn.0056ecb0
add esp, 8
push 0
push 2
push ebp
mov ebp, dword [esp + 0x28]
push ebp
push 0x20
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x48]
inc eax
push eax
push 0x40
push dword [esp + 0x5c]
push ebp
push 0x20
push edi
call fcn.0058eef0
push edi
call fcn.0058ecc0
add esp, 0x34
jmp 0x5779f8
mov ebp, dword [esp + 0x24]
test ebp, ebp
jne 0x5783c1
push 1
push ebx
call fcn.0056ecb0
add esp, 8
push 0
push 2
push ebp
push dword [esp + 0x28]
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
cmp word [esp + 0x10], 0x25
jne 0x5779ef
push 1
lea eax, [esi + 0x18]
push eax
push dword [esp + 0x34]
push dword [esp + 0x2c]
push ebx
call fcn.00575330
add esp, 0x14
jmp 0x5779ef
cmp word [esp + 0x20], 0xd
jne 0x578442
cmp dword [ebx + 0x128], 0
jne 0x578442
push 0
push 0xc
push 0
push 2
push 0x20
push edi
call fcn.0058eef0
push ebx
call fcn.0058bda0
mov eax, dword [esp + 0x44]
add esp, 0x1c
test eax, eax
je case.0x577940.35
push 0
push 0xc
push eax
push 0x8d
jmp 0x5788df
cmp dword [ebx + 0x124], 0
je 0x5784ef
push 0
push 2
push dword [esp + 0x20]
push ebp
push 0x20
push edi
call fcn.0058eef0
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.0057f8a0
push edi
call fcn.0058ecc0
push 0
mov esi, eax
lea eax, [esp + 0x3c]
push eax
push dword [esp + 0x58]
push dword [esp + 0x50]
push ebx
call fcn.00575330
push 0
push 2
push dword [esp + 0x58]
push ebp
push 0x20
push edi
call fcn.0058eef0
add esp, 0x50
push esi
push ebx
call fcn.0057fa40
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x20]
add esp, 0xc
mov esi, eax
test edx, edx
je 0x5784d6
mov ecx, dword [edx]
test ecx, ecx
je 0x5784cf
test esi, esi
je 0x5784cf
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 0x5784b6
push dword [esp + 0x18]
push ebp
push 0
push 2
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
jmp 0x57834b
lea eax, [esp + 0x14]
push eax
push ebx
call fcn.0057f8a0
push edi
call fcn.0058ecc0
push 0
mov esi, eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x40]
push dword [esp + 0x38]
push ebx
call fcn.00575330
push esi
push ebx
call fcn.0057fa40
push 2
push 0x40
push 0
push 2
push 0
push 2
push 0x60
push edi
call fcn.0058f130
add esp, 0x48
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x3c]
add esp, 4
mov esi, eax
test edx, edx
je 0x578568
mov ecx, dword [edx]
test ecx, ecx
je 0x578561
test esi, esi
je 0x578561
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 0x578548
push 2
push 0x40
push 0
push 2
push 0
push 2
push 0x62
push edi
call fcn.0058f130
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x38]
add esp, 0x24
mov esi, eax
test edx, edx
je 0x57834b
mov ecx, dword [edx]
test ecx, ecx
je 0x5785ac
test esi, esi
je 0x5785ac
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 0x578593
jmp 0x57834b
cmp dword [ebx + 0x124], 0
je 0x57869d
push 0
push 2
push 0xc
push 0x8d
push 0x20
push edi
call fcn.0058eef0
push dword [esp + 0x48]
push 0x40
push dword [esp + 0x38]
push ebp
push 0x20
push edi
call fcn.0058eef0
lea eax, [esp + 0x44]
push eax
push ebx
call fcn.0057f8a0
push edi
call fcn.0058ecc0
push 0
mov esi, eax
lea eax, [esp + 0x54]
push eax
push dword [esp + 0x70]
push dword [esp + 0x68]
push ebx
call fcn.00575330
add esp, 0x50
push 0
push 2
push 0xc
push 0x8d
push 0x20
push edi
call fcn.0058eef0
mov eax, dword [esp + 0x30]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
push 0
push edi
call fcn.0058ec30
add esp, 0x40
push eax
lea eax, [esp + 0x18]
push eax
push edi
call fcn.0056ec80
push esi
push ebx
call fcn.0057fa40
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x2c]
add esp, 0x18
mov esi, eax
test edx, edx
je 0x578691
mov ecx, dword [edx]
test ecx, ecx
je 0x57868a
test esi, esi
je 0x57868a
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 0x578671
push 0xc
push 0x8d
jmp 0x5788db
cmp word [esp + 0x20], 0xd
jne 0x578751
mov eax, dword [esp + 0x30]
add eax, eax
push eax
push 0x40
push 0
push 2
push 0
push 2
push 0x60
push edi
call fcn.0058f130
add esp, 0x20
cmp dword [ebx + 0x68], 1
push 0
push 0xc
push 0
push 2
jne 0x578704
push 0x1062
push edi
call fcn.0058f520
push 0
push 0xc
push 2
push 4
push edi
call fcn.0058d780
add esp, 0x2c
push ebx
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push 5
push edi
call fcn.0058d8e0
push ebx
mov esi, eax
call fcn.0058bda0
push edi
call fcn.0058ecc0
add esp, 0x20
test esi, esi
je case.0x577940.35
test eax, eax
je case.0x577940.35
mov ecx, dword [esi + 8]
and ecx, 0xfffffffd
mov dword [esi + 0xc], eax
or ecx, 1
push ebx
mov dword [esi + 8], ecx
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
push dword [esp + 0x30]
push 0x40
push dword [esp + 0x20]
push ebp
push 0x20
push edi
call fcn.0058eef0
lea eax, [esp + 0x2c]
push eax
push ebx
call fcn.0057f8a0
push edi
call fcn.0058ecc0
push 0
mov esi, eax
lea eax, [esp + 0x60]
push eax
push dword [esp + 0x58]
push dword [esp + 0x50]
push ebx
call fcn.00575330
mov eax, dword [esp + 0x50]
push 1
push 0x40
push eax
push ebp
push eax
push ebp
push 0x262
push edi
call fcn.0058f130
add esp, 0x58
push 0
push edi
call fcn.0058ec30
push eax
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0056ec80
push esi
push ebx
call fcn.0057fa40
push 2
push 0x40
push 0
push 2
push 0
push 2
push 0x60
push edi
call fcn.0058f130
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x78]
add esp, 0x40
mov esi, eax
test edx, edx
je 0x578808
mov ecx, dword [edx]
test ecx, ecx
je 0x578801
test esi, esi
je 0x578801
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 0x5787e8
push 2
push 0x40
push 0
push 2
push 0
push 2
push 0x62
push edi
call fcn.0058f130
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x38]
add esp, 0x24
mov esi, eax
test edx, edx
je case.0x577940.35
mov ecx, dword [edx]
test ecx, ecx
je 0x57884c
test esi, esi
je 0x57884c
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 0x578833
push ebx
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
mov esi, dword [esp + 0x18]
push 0
push 2
push esi
push ebp
push 0x20
push edi
call fcn.0058eef0
push 1
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x44]
push ebx
call fcn.00575330
push 0
push 2
push esi
push ebp
push 0x20
push edi
call fcn.0058eef0
add esp, 0x44
push edi
call fcn.0058ecc0
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [esp + 0x48], eax
test edx, edx
je 0x5788d9
mov ecx, dword [edx]
test ecx, ecx
je 0x5788d2
test eax, eax
je 0x5788d2
mov eax, dword [ecx + 8]
and eax, 0xfffffffd
or eax, 1
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x48]
mov dword [ecx + 0xc], eax
mov edx, dword [edx + 4]
test edx, edx
jne 0x5788b5
push esi
push ebp
push 0
push 2
push 0x20
push edi
call fcn.0058eef0
add esp, 0x18
push ebx
call fcn.0057ea90
mov eax, dword [esp + 0x38]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3c
ret