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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0xd8]
cmp eax, dword [ecx + 8]
jbe 0x585f33
sub esp, 0x158
mov eax, dword [esp + 0x160]
cmp dword [eax], 8
jne 0x5842b2
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x128], edx
cmp ecx, 0x12
jge 0x58419d
xor ebx, ebx
jmp 0x5841d0
mov dword [esp], edx
lea eax, [0x610276]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x12
call fcn.00402a50
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x128]
mov ebx, eax
mov eax, dword [esp + 0x160]
test bl, bl
je 0x584272
mov eax, dword [0x7a102c]
lea ebx, [0x5e3660]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
call fcn.0040fa80
mov eax, dword [esp + 0x10]
movzx ecx, byte [esp + 0x14]
mov edx, dword [eax]
mov eax, dword [eax + 4]
test cl, cl
je 0x584215
mov ecx, eax
mov eax, dword [esp + 0x160]
jmp 0x584272
mov ecx, dword [esp + 0x50]
cmp ecx, 0x12
jb 0x585f28
lea eax, [esp + 0xec]
mov dword [esp], eax
lea eax, [0x60b3eb]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
lea eax, [ecx - 0x12]
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 0x12
mov edx, dword [esp + 0x128]
add eax, edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.0044dc10
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ecx, eax
mov eax, dword [esp + 0x160]
cmp ecx, 5
jne 0x58428c
cmp dword [edx], 0x74732121
jne 0x58428c
cmp byte [edx + 4], 0x72
jne 0x58428c
mov ecx, 1
jmp 0x5842b4
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
test ecx, ecx
je 0x5842a0
cmp ecx, 1
jne 0x5842ae
cmp byte [edx], 0x21
jne 0x5842ae
mov ecx, dword [eax + 4]
test ecx, 0x1e
setne cl
jmp 0x5842b4
xor ecx, ecx
jmp 0x5842b4
xor ecx, ecx
test cl, cl
je 0x5842e6
mov ecx, dword [eax + 0x10]
mov edx, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
call fcn.00409680
mov eax, dword [esp + 8]
mov ecx, 5
mov esi, eax
lea ebp, [0x5e1fa0]
lea eax, [0x60b965]
jmp 0x5843c5
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call fcn.0059dac0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
cmp ecx, 8
jne 0x5843c5
cmp dword [eax], 0x69622121
jne 0x5843c5
cmp dword [eax + 4], 0x7972616e
jne 0x5843c5
lea ebp, [0x5e1fa0]
cmp edx, ebp
jne 0x585f12
mov dword [esp + 0x12c], eax
mov dword [esp + 0x54], ecx
mov eax, dword [0x7a081c]
mov ecx, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00505460
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x585e57
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call fcn.0044dec0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409680
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
lea ebp, [0x5e1fa0]
test ebp, ebp
je 0x585d92
nop
movzx edx, byte [0x7a1de0]
test dl, dl
je 0x584402
mov dword [0x7a1de4], ebp
mov edx, dword [0x7c78f0]
test edx, edx
jne 0x5843f1
mov dword [0x7a1de8], esi
jmp 0x584402
lea edi, [0x7a1de8]
mov edx, eax
mov eax, esi
call fcn.00463730
mov eax, edx
mov dword [esp + 0x148], ebp
mov dword [esp + 0x14c], esi
mov edx, dword [esp + 0x148]
test edx, edx
je 0x584436
nop
movzx ebx, byte [edx + 0xf]
mov edi, ebx
and ebx, 0x1f
xchg edi, eax
test al, 0x20
xchg edi, eax
jne 0x584432
or ebx, 0x80
mov edi, esi
jmp 0x58443e
mov edi, esi
xor ebx, ebx
xor edx, edx
xor esi, esi
mov dword [esp + 0x54], ecx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x134], edi
mov dword [esp + 0x58], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x118], esi
mov dword [esp + 0x110], edx
mov ebp, dword [esp + 0x16c]
test ebp, ebp
je 0x5844a1
test ebp, 0x200
jne 0x5844a1
mov dword [esp + 0xc4], eax
lea eax, [0x663100]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0xc4]
jmp 0x5844fd
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x110]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x16c]
mov esi, dword [esp + 0x118]
mov edi, dword [esp + 0x134]
mov dword [esp + 0x34], eax
mov dword [esp + 0x120], ecx
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
test ebx, ebx
je 0x584523
test ebx, 0x200
jne 0x584523
mov dword [esp + 0xbc], eax
lea eax, [0x663100]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
jmp 0x584563
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x16c]
mov esi, dword [esp + 0x118]
mov edi, dword [esp + 0x134]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x12c]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
cmp ebx, esi
jne 0x5845ac
mov dword [esp], ebx
mov eax, dword [esp + 0x120]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call fcn.00403850
movzx eax, byte [esp + 0xc]
test al, al
jne 0x585d40
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x16c]
mov edi, dword [esp + 0x134]
test ebp, 0x100
je 0x58463e
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call fcn.004bb060
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004bc5d0
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea edx, [0x5e6c80]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.004099b0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
jne 0x585c65
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov ebp, dword [esp + 0x16c]
mov edi, dword [esp + 0x134]
nop
mov edx, ebp
and ebp, 0x1f
cmp ebp, 0xe
ja 0x58589b
cmp ebp, 6
ja 0x58514c
cmp ebp, 1
jne 0x584863
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x585c1a
mov ebp, dword [ebx + 8]
cmp ebp, 0x778cdb8
jne 0x584815
lea ebp, [0x5e1fa0]
cmp ebx, ebp
jne 0x585c1a
mov ebx, dword [edi]
mov ebp, dword [edi + 4]
cmp ebp, 1
jne 0x5846cc
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 0x59
xchg ebp, eax
jg 0x5846b5
cmp byte [ebx], 0x4e
je 0x58479c
xchg ebp, eax
cmp al, 0x59
xchg ebp, eax
je 0x5847e3
jmp 0x585c1a
cmp byte [ebx], 0x6e
je 0x58479c
cmp byte [ebx], 0x79
je 0x5847e3
jmp 0x585c1a
cmp ebp, 2
jne 0x58472f
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 0x4e
xchg ebp, eax
jg 0x5846f6
cmp word [ebx], 0x4f4e
je 0x58479c
cmp word [ebx], 0x6f4e
je 0x58479c
jmp 0x585c1a
xchg ebp, eax
cmp al, 0x4f
xchg ebp, eax
jg 0x584718
cmp word [ebx], 0x4e4f
je 0x5847e3
cmp word [ebx], 0x6e4f
je 0x5847e3
jmp 0x585c1a
cmp word [ebx], 0x6f6e
je 0x58479c
cmp word [ebx], 0x6e6f
je 0x5847e3
jmp 0x585c1a
cmp ebp, 3
jne 0x585c1a
movzx ebp, byte [ebx]
xchg ebp, eax
cmp al, 0x4f
xchg ebp, eax
jg 0x584765
cmp word [ebx], 0x464f
jne 0x58474f
cmp byte [ebx + 2], 0x46
je 0x58479c
cmp word [ebx], 0x664f
jne 0x585c1a
cmp byte [ebx + 2], 0x66
je 0x58479c
jmp 0x585c1a
xchg ebp, eax
cmp al, 0x59
xchg ebp, eax
jg 0x58478f
cmp word [ebx], 0x4559
jne 0x584779
cmp byte [ebx + 2], 0x53
je 0x5847e3
cmp word [ebx], 0x6559
jne 0x585c1a
cmp byte [ebx + 2], 0x73
je 0x5847e3
jmp 0x585c1a
cmp word [ebx], 0x666f
jne 0x5847ce
cmp byte [ebx + 2], 0x66
jne 0x5847ce
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov byte [esp + 0xc], 0
call fcn.004bdae0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp word [ebx], 0x6579
jne 0x585c1a
cmp byte [ebx + 2], 0x73
jne 0x585c1a
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov byte [esp + 0xc], 1
call fcn.004bdae0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0xb00b9f48
jne 0x585c1a
lea ebp, [0x5e0ae0]
cmp ebx, ebp
jne 0x585c1a
movzx eax, byte [edi]
mov ecx, dword [esp + 0x164]
mov dword [esp], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov byte [esp + 0xc], al
call fcn.004bdae0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 2
jb 0x585c1a
test edx, 0x200
jne 0x584883
lea ebx, [0x663100]
mov ebp, dword [esp + 0x164]
jmp 0x5848c6
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x16c]
mov edi, dword [esp + 0x134]
mov ebx, eax
mov ebp, ecx
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov esi, dword [0x7a171c]
cmp dword [0x7a1718], ebx
je 0x5848e1
mov ebx, dword [esp + 0x58]
test ebx, ebx
mov ebp, 0
jmp 0x584919
mov dword [esp], ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call fcn.00403850
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x58]
test ecx, ecx
mov edx, dword [esp + 0x16c]
mov ebx, ecx
mov edi, dword [esp + 0x134]
mov ebp, eax
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
je 0x585c1a
mov esi, dword [ebx + 8]
cmp esi, 0x8fc52ddb
ja 0x584c35
cmp esi, 0x778cdb8
jne 0x584a72
lea ebp, [0x5e1fa0]
cmp ebx, ebp
jne 0x585c1a
mov ebx, dword [edi]
mov dword [esp + 0x130], ebx
mov ebp, dword [edi + 4]
mov dword [esp + 0x6c], ebp
test edx, 0x200
jne 0x58496f
lea esi, [0x663100]
mov edi, dword [esp + 0x164]
jmp 0x5849b6
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x130]
mov ebp, dword [esp + 0x6c]
mov esi, eax
mov edi, ecx
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov ebp, dword [0x7a171c]
cmp dword [0x7a1718], esi
jne 0x585c1a
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
call fcn.00403850
movzx eax, byte [esp + 0xc]
test al, al
jne 0x5849f8
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov eax, dword [esp + 0x130]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
call fcn.00484310
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
test edx, edx
je 0x584a36
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov edx, dword [esp + 0x164]
mov dword [esp], edx
mov edx, dword [esp + 0x168]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004bdea0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp esi, 0x8fc52ddb
jne 0x585c1a
lea esi, [0x5e2120]
cmp ebx, esi
jne 0x585c1a
mov ebx, dword [edi]
mov esi, dword [edi + 4]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x585c1a
cmp esi, 0x7fffffff
xchg ebp, ebx
setb bl
xchg ebp, ebx
xchg edi, ebx
sete bl
xchg edi, ebx
cmp ebx, 0xffffffff
setbe dl
and edi, edx
or edi, ebp
xchg edi, eax
test al, al
xchg edi, eax
je 0x584c29
mov dword [esp + 0x64], ebx
mov dword [esp + 0x78], esi
mov edx, dword [esp + 0x164]
mov ebp, dword [edx]
shl ebp, 3
add ebp, 0xffffffc0
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0xa0], ebp
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x9c], edi
lea edx, [ebp - 0x20]
mov dword [esp + 0x98], edx
neg edx
cmp edx, 0x20
sbb eax, eax
mov dword [esp + 0x94], eax
mov edi, dword [esp + 0x98]
cmp edi, 0x20
sbb edi, edi
mov dword [esp + 0x90], edi
shr ebp, 5
cmp ebp, 1
sbb ebp, ebp
mov dword [esp + 0x8c], ebp
mov ebp, dword [esp + 0xa0]
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0xa0], edi
mov ecx, edx
shr ebx, cl
and ebx, eax
mov ecx, ebp
shl esi, cl
mov edi, dword [esp + 0x9c]
and esi, edi
or esi, ebx
mov ecx, dword [esp + 0x98]
mov ebx, dword [esp + 0x64]
shl ebx, cl
mov eax, dword [esp + 0x90]
and ebx, eax
or esi, ebx
mov ecx, ebp
mov ebx, dword [esp + 0x64]
shl ebx, cl
and ebx, edi
mov ecx, edx
mov edx, esi
shl esi, cl
mov ecx, edx
mov edx, dword [esp + 0x94]
and esi, edx
mov edx, ecx
mov ecx, ebp
shr ebx, cl
and ebx, edi
or esi, ebx
not eax
mov ebx, dword [esp + 0x98]
or ebx, eax
mov ecx, ebx
mov eax, edx
sar edx, cl
mov ebx, dword [esp + 0x8c]
xor ebx, 0xffffffff
and edx, ebx
or edx, esi
mov ebx, dword [esp + 0x64]
cmp ebx, edx
setne dl
mov ecx, dword [esp + 0xa0]
not ecx
or ecx, ebp
sar eax, cl
mov ebp, dword [esp + 0x78]
cmp ebp, eax
setne al
or eax, edx
test al, al
je 0x584bed
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
call fcn.004bdea0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
cmp esi, 0x93592d94
jne 0x584dfb
lea esi, [0x5e0d20]
cmp ebx, esi
jne 0x585c1a
movsd xmm0, qword [edi]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x585c1a
movsd xmm1, qword [0x661334]
ucomisd xmm1, xmm0
jb 0x585c1a
movsd qword [esp + 0xac], xmm0
movsd qword [esp], xmm0
call fcn.0045c5a0
mov eax, dword [esp + 0x164]
mov ecx, dword [eax]
shl ecx, 3
add ecx, 0xffffffc0
neg ecx
mov dword [esp + 0xa0], ecx
cmp ecx, 0x20
sbb edx, edx
mov dword [esp + 0x9c], edx
lea ebx, [ecx - 0x20]
cmp ebx, 0x20
sbb ebp, ebp
mov dword [esp + 0x98], ebp
mov esi, ebx
neg ebx
mov dword [esp + 0x94], ebx
cmp ebx, 0x20
sbb edi, edi
mov dword [esp + 0x90], edi
shr ecx, 5
cmp ecx, 1
sbb ecx, ecx
mov dword [esp + 0x8c], ecx
mov eax, dword [esp + 0xa0]
cmp eax, 0x20
sbb ecx, ecx
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x3c], ecx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x40], ebp
mov ecx, ebx
mov edx, dword [esp + 0x3c]
shr edx, cl
mov ecx, esi
mov ebx, dword [esp + 0x3c]
shl ebx, cl
and edx, edi
mov ecx, eax
shl ebp, cl
mov edi, dword [esp + 0x9c]
and ebp, edi
or ebp, edx
mov edx, dword [esp + 0x98]
and ebx, edx
or ebx, ebp
mov ebp, dword [esp + 0x3c]
shl ebp, cl
and ebp, edi
shr ebp, cl
not edx
or edx, esi
mov ecx, edx
mov esi, ebx
sar ebx, cl
mov ecx, dword [esp + 0x94]
mov edx, esi
shl esi, cl
mov ecx, dword [esp + 0x90]
and esi, ecx
mov ecx, dword [esp + 0x8c]
xor ecx, 0xffffffff
and ebx, ecx
and ebp, edi
or esi, ebp
or ebx, esi
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
setne cl
mov ebx, dword [esp + 0xa0]
not ebx
or eax, ebx
mov ebx, ecx
mov ecx, eax
sar edx, cl
mov eax, dword [esp + 0x40]
cmp eax, edx
setne al
or eax, ebx
test al, al
je 0x584da4
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
movsd xmm0, qword [esp + 0xac]
movsd qword [esp], xmm0
call fcn.0045c5a0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x164]
mov dword [esp], edx
mov edx, dword [esp + 0x168]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004bdea0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp esi, 0x99d6dd43
jne 0x584f97
lea esi, [0x5e1860]
cmp ebx, esi
jne 0x585c1a
mov ebx, dword [edi]
mov esi, dword [edi + 4]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x585c1a
mov dword [esp + 0x68], ebx
mov dword [esp + 0x7c], esi
mov ebp, dword [esp + 0x164]
mov edi, dword [ebp]
shl edi, 3
add edi, 0xffffffc0
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0xa0], edi
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0x9c], edx
lea ebp, [edi - 0x20]
mov dword [esp + 0x98], ebp
cmp ebp, 0x20
sbb eax, eax
mov dword [esp + 0x94], eax
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb edx, edx
mov dword [esp + 0x90], edx
shr edi, 5
cmp edi, 1
sbb edi, edi
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0xa0]
cmp edi, 0x20
sbb edx, edx
mov dword [esp + 0xa0], edx
mov ecx, edi
shl esi, cl
mov ecx, dword [esp + 0x98]
shl ebx, cl
and ebx, eax
mov ecx, ebp
mov edx, dword [esp + 0x68]
shr edx, cl
mov eax, dword [esp + 0x90]
and edx, eax
mov eax, dword [esp + 0x9c]
and esi, eax
or esi, edx
or esi, ebx
mov ecx, edi
mov edx, dword [esp + 0x68]
shl edx, cl
and edx, eax
mov ecx, ebp
mov ebp, esi
shl esi, cl
mov ecx, edi
shr edx, cl
mov edi, dword [esp + 0x94]
xchg edi, ebx
not ebx
xchg edi, ebx
mov ebx, dword [esp + 0x98]
or ebx, edi
mov edi, ecx
mov ecx, ebx
mov ebx, ebp
sar ebp, cl
mov ecx, ebx
mov ebx, dword [esp + 0x8c]
xor ebx, 0xffffffff
and ebp, ebx
mov ebx, dword [esp + 0x90]
and esi, ebx
and edx, eax
or esi, edx
or ebp, esi
mov eax, dword [esp + 0x68]
cmp eax, ebp
setne dl
mov ebx, dword [esp + 0xa0]
not ebx
or edi, ebx
mov ebx, ecx
mov ecx, edi
sar ebx, cl
mov ebp, dword [esp + 0x7c]
cmp ebp, ebx
setne bl
or ebx, edx
test bl, bl
je 0x584f5b
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov ecx, dword [esp + 0x164]
mov dword [esp], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], eax
call fcn.004bdea0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp esi, 0xcb735792
jne 0x585c1a
lea esi, [0x5e17a0]
cmp ebx, esi
jne 0x585c1a
mov ebx, dword [edi]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x585c1a
mov dword [esp + 0x84], ebx
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp]
shl esi, 3
add esi, 0xffffffc0
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0xa0], esi
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0x9c], edi
lea edx, [esi - 0x20]
mov dword [esp + 0x98], edx
neg edx
cmp edx, 0x20
sbb ebp, ebp
mov dword [esp + 0x94], ebp
mov eax, dword [esp + 0x98]
cmp eax, 0x20
sbb ebp, ebp
mov dword [esp + 0x90], ebp
shr esi, 5
cmp esi, 1
sbb esi, esi
mov dword [esp + 0x8c], esi
mov esi, dword [esp + 0xa0]
cmp esi, 0x20
sbb edi, edi
mov dword [esp + 0xa0], edi
sar ebx, 0x1f
mov dword [esp + 0x48], ebx
mov ecx, eax
mov edi, dword [esp + 0x84]
shl edi, cl
mov ecx, esi
shl ebx, cl
mov ecx, edx
mov eax, dword [esp + 0x84]
shr eax, cl
and edi, ebp
mov edx, dword [esp + 0x9c]
and ebx, edx
mov ebp, dword [esp + 0x94]
and eax, ebp
or eax, ebx
or edi, eax
mov eax, ecx
mov ecx, esi
mov ebx, dword [esp + 0x84]
shl ebx, cl
and ebx, edx
mov dword [esp + 0x94], ebx
mov edx, dword [esp + 0x90]
not edx
mov ebx, dword [esp + 0x98]
or ebx, edx
mov ecx, eax
mov edx, edi
shl edi, cl
mov ecx, ebx
mov eax, edx
sar edx, cl
mov ebx, dword [esp + 0x8c]
xor ebx, 0xffffffff
and edx, ebx
and edi, ebp
mov ecx, esi
mov ebx, dword [esp + 0x94]
shr ebx, cl
mov ebp, dword [esp + 0x9c]
and ebx, ebp
or edi, ebx
or edx, edi
mov ebx, dword [esp + 0x84]
cmp ebx, edx
setne dl
mov ebp, dword [esp + 0xa0]
xchg ebp, ebx
not ebx
xchg ebp, ebx
or ecx, ebp
sar eax, cl
mov ebp, dword [esp + 0x48]
cmp ebp, eax
setne al
or eax, edx
test al, al
je 0x585110
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], ebx
call fcn.004bdea0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0xc
ja 0x58570e
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x585c1a
mov ebp, dword [ebx + 8]
cmp ebp, 0x93592d94
ja 0x585423
cmp ebp, 0x8fc52ddb
jne 0x5852a7
lea ebp, [0x5e2120]
cmp ebx, ebp
jne 0x585c1a
mov ebx, dword [esp + 0x164]
mov ebp, dword [ebx]
shl ebp, 3
add ebp, 0xffffffc0
xchg ebp, ebx
neg ebx
xchg ebp, ebx
cmp ebp, 0x20
sbb esi, esi
lea edx, [ebp - 0x20]
mov dword [esp + 0x9c], edx
cmp edx, 0x20
sbb ebx, ebx
mov dword [esp + 0x98], ebx
neg edx
mov dword [esp + 0x94], edx
cmp edx, 0x20
sbb eax, eax
mov dword [esp + 0x90], eax
mov ebx, dword [edi]
mov dword [esp + 0x5c], ebx
mov edi, dword [edi + 4]
mov dword [esp + 0x70], edi
mov ecx, ebp
shl edi, cl
and edi, esi
mov ecx, edx
shr ebx, cl
and ebx, eax
or edi, ebx
mov ecx, dword [esp + 0x9c]
mov ebx, dword [esp + 0x5c]
shl ebx, cl
mov eax, dword [esp + 0x98]
and ebx, eax
or edi, ebx
mov ebx, ecx
mov ecx, ebp
mov edx, dword [esp + 0x5c]
shl edx, cl
and edx, esi
mov ecx, ebx
mov ebx, edi
shr edi, cl
and edi, eax
mov ecx, dword [esp + 0x94]
mov eax, ebx
shl ebx, cl
mov ecx, eax
mov eax, dword [esp + 0x90]
and ebx, eax
mov eax, ecx
mov ecx, ebp
shr edx, cl
and edx, esi
or ebx, edx
or ebx, edi
mov edx, dword [esp + 0x5c]
cmp edx, ebx
setne bl
shr eax, cl
and eax, esi
mov ebp, dword [esp + 0x70]
cmp ebp, eax
setne al
or eax, ebx
test al, al
je 0x58526b
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebp
mov dword [esp + 0xc], edx
call fcn.004be480
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x93592d94
jne 0x585c1a
lea ebp, [0x5e0d20]
cmp ebx, ebp
jne 0x585c1a
movsd xmm0, qword [edi]
movsd xmm1, qword [0x66133c]
ucomisd xmm1, xmm0
jb 0x585c1a
movsd qword [esp + 0xa4], xmm0
movsd qword [esp], xmm0
call fcn.0045c5f0
mov eax, dword [esp + 0x164]
mov ecx, dword [eax]
shl ecx, 3
add ecx, 0xffffffc0
neg ecx
mov dword [esp + 0xa0], ecx
cmp ecx, 0x20
sbb edx, edx
lea ebx, [ecx - 0x20]
mov ebp, ebx
neg ebx
mov dword [esp + 0x9c], ebx
cmp ebx, 0x20
sbb esi, esi
mov dword [esp + 0x98], esi
cmp ebp, 0x20
sbb edi, edi
mov dword [esp + 0x94], edi
mov eax, dword [esp + 8]
mov dword [esp + 0x38], eax
mov edi, dword [esp + 0xc]
mov dword [esp + 0x44], edi
mov ecx, ebx
shr eax, cl
and eax, esi
mov ecx, dword [esp + 0xa0]
shl edi, cl
and edi, edx
or edi, eax
mov eax, ecx
mov ecx, ebp
mov esi, dword [esp + 0x38]
shl esi, cl
mov ebx, dword [esp + 0x94]
and esi, ebx
or esi, edi
mov ecx, eax
mov edi, dword [esp + 0x38]
shl edi, cl
and edi, edx
mov ecx, ebp
mov ebp, esi
shr esi, cl
and esi, ebx
mov ecx, dword [esp + 0x9c]
mov ebx, ebp
shl ebp, cl
mov ecx, dword [esp + 0x98]
and ebp, ecx
mov ecx, eax
shr edi, cl
and edi, edx
or ebp, edi
or ebp, esi
mov esi, dword [esp + 0x38]
cmp esi, ebp
xchg ebp, ebx
setne bl
xchg ebp, ebx
shr ebx, cl
and ebx, edx
mov eax, dword [esp + 0x44]
cmp eax, ebx
setne al
or eax, ebp
test al, al
je 0x5853cc
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
movsd xmm0, qword [esp + 0xa4]
movsd qword [esp], xmm0
call fcn.0045c5f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x164]
mov dword [esp], edx
mov edx, dword [esp + 0x168]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x16c]
mov dword [esp + 8], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
call fcn.004be480
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x99d6dd43
jne 0x58559c
lea ebp, [0x5e1860]
cmp ebx, ebp
jne 0x585c1a
mov ebx, dword [edi + 4]
test ebx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
mov edi, dword [edi]
and ebp, 1
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x585c1a
mov dword [esp + 0x60], edi
mov dword [esp + 0x74], ebx
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp]
shl esi, 3
add esi, 0xffffffc0
xchg esi, ebx
neg ebx
xchg esi, ebx
cmp esi, 0x20
sbb edx, edx
mov dword [esp + 0x9c], edx
lea ebp, [esi - 0x20]
mov dword [esp + 0x98], ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
mov dword [esp + 0x94], ebp
cmp ebp, 0x20
sbb eax, eax
mov dword [esp + 0x90], eax
mov edx, dword [esp + 0x98]
cmp edx, 0x20
sbb ebx, ebx
mov dword [esp + 0x98], ebx
mov ecx, edx
shl edi, cl
and edi, ebx
mov ecx, ebp
mov ebx, dword [esp + 0x60]
shr ebx, cl
and ebx, eax
mov ecx, esi
mov eax, dword [esp + 0x74]
shl eax, cl
mov ebp, dword [esp + 0x9c]
and eax, ebp
or eax, ebx
or eax, edi
mov dword [esp + 0x9c], eax
mov ebx, dword [esp + 0x60]
mov edi, ebx
shl ebx, cl
and ebx, ebp
mov ecx, edx
mov edx, eax
shr eax, cl
mov ecx, edi
mov edi, dword [esp + 0x98]
and eax, edi
mov edi, ecx
mov ecx, dword [esp + 0x94]
shl edx, cl
mov ecx, edi
mov edi, dword [esp + 0x90]
and edx, edi
mov edi, ecx
mov ecx, esi
shr ebx, cl
and ebx, ebp
or edx, ebx
or edx, eax
cmp edi, edx
setne al
mov edx, dword [esp + 0x9c]
shr edx, cl
and edx, ebp
mov ebx, dword [esp + 0x74]
cmp ebx, edx
setne dl
or edx, eax
test dl, dl
je 0x585560
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], edi
call fcn.004be480
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0xcb735792
jne 0x585c1a
lea ebp, [0x5e17a0]
cmp ebx, ebp
jne 0x585c1a
mov ebx, dword [edi]
test ebx, ebx
jl 0x585c1a
mov dword [esp + 0x80], ebx
mov ebp, dword [esp + 0x164]
mov esi, dword [ebp]
shl esi, 3
add esi, 0xffffffc0
xchg esi, ebx
neg ebx
xchg esi, ebx
mov dword [esp + 0xa0], esi
lea edi, [esi - 0x20]
mov dword [esp + 0x9c], edi
cmp edi, 0x20
sbb edx, edx
cmp esi, 0x20
sbb ebp, ebp
mov dword [esp + 0x98], ebp
xchg edi, ebx
neg ebx
xchg edi, ebx
mov dword [esp + 0x94], edi
cmp edi, 0x20
sbb eax, eax
mov dword [esp + 0x90], eax
sar ebx, 0x1f
mov dword [esp + 0x88], ebx
mov ecx, edi
mov ebp, dword [esp + 0x80]
shr ebp, cl
mov ecx, dword [esp + 0x9c]
mov edi, dword [esp + 0x80]
shl edi, cl
and edi, edx
and ebp, eax
mov ecx, esi
shl ebx, cl
mov eax, dword [esp + 0x98]
and ebx, eax
or ebp, ebx
or edi, ebp
mov dword [esp + 0x98], edi
mov ebx, dword [esp + 0x80]
mov ebp, ebx
shl ebx, cl
and ebx, eax
shr ebx, cl
mov ecx, dword [esp + 0x94]
shl edi, cl
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0x98]
shr esi, cl
and esi, edx
mov edx, dword [esp + 0x90]
and edi, edx
and ebx, eax
or edi, ebx
or edi, esi
cmp ebp, edi
setne dl
mov ecx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x98]
shr ebx, cl
and ebx, eax
mov eax, dword [esp + 0x88]
cmp eax, ebx
setne bl
or ebx, edx
test bl, bl
je 0x5856d2
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov ecx, dword [esp + 0x164]
mov dword [esp], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x16c]
mov dword [esp + 8], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ebp
call fcn.004be480
mov byte [esp + 0x170], 1
add esp, 0x158
ret
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x585c1a
mov ebp, dword [ebx + 8]
cmp ebp, 0x93592d94
ja 0x5857e1
cmp ebp, 0x8fc52ddb
jne 0x585790
lea ebp, [0x5e2120]
cmp ebx, ebp
jne 0x585c1a
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0045c710
movsd xmm0, qword [esp + 8]
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call fcn.004bdde0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x93592d94
jne 0x585c1a
lea ebp, [0x5e0d20]
cmp ebx, ebp
jne 0x585c1a
movsd xmm0, qword [edi]
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov dword [esp + 8], edx
movsd qword [esp + 0xc], xmm0
call fcn.004bdde0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x99d6dd43
jne 0x585848
lea ebp, [0x5e1860]
cmp ebx, ebp
jne 0x585c1a
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.0045c640
movsd xmm0, qword [esp + 8]
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
movsd qword [esp + 0xc], xmm0
call fcn.004bdde0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0xcb735792
jne 0x585c1a
lea ebp, [0x5e17a0]
cmp ebx, ebp
jne 0x585c1a
mov eax, dword [edi]
mov ecx, dword [esp + 0x164]
mov dword [esp], ecx
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
cvtsi2sd xmm0, eax
movsd qword [esp + 0xc], xmm0
call fcn.004bdde0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x16
ja 0x585967
cmp ebp, 0x14
jne 0x585959
nop
movzx ecx, byte [0x7a1de0]
test cl, cl
je 0x5858e6
mov ecx, dword [esp + 0x58]
mov dword [0x7a1de4], ecx
mov ebx, dword [0x7c78f0]
test ebx, ebx
jne 0x5858d5
mov dword [0x7a1de8], edi
jmp 0x5858ea
mov eax, edi
lea edi, [0x7a1de8]
call fcn.00463730
mov edi, eax
jmp 0x5858ea
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x144], edi
mov eax, dword [esp + 0x140]
test eax, eax
je 0x58591a
nop
movzx ecx, byte [eax + 0xf]
mov ebx, ecx
and ecx, 0x1f
test bl, 0x20
jne 0x585920
or ecx, 0x80
jmp 0x585920
xor ecx, ecx
xor eax, eax
xor edi, edi
mov ebx, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
call fcn.004bd9d0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x16
jne 0x585c1a
jmp 0x585e3f
cmp ebp, 0x18
jne 0x585a14
cmp ecx, 8
jne 0x5859d2
cmp dword [eax], 0x69622121
jne 0x5859d2
cmp dword [eax + 4], 0x7972616e
jne 0x5859d2
mov eax, dword [esp + 0x58]
lea ecx, [0x5e1fa0]
cmp eax, ecx
jne 0x585e29
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov ebx, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call fcn.004be580
mov byte [esp + 0x170], 1
add esp, 0x158
ret
mov eax, dword [esp + 0x160]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov ebx, dword [esp + 0x164]
mov dword [esp], ebx
mov ebx, dword [esp + 0x168]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.004be580
mov byte [esp + 0x170], 1
add esp, 0x158
ret
cmp ebp, 0x19
jne 0x585c1a
nop
movzx ebx, byte [0x7a1de0]
test bl, bl
je 0x585a5c
mov ebx, dword [esp + 0x58]
mov dword [0x7a1de4], ebx
mov ebp, dword [0x7c78f0]
test ebp, ebp
jne 0x585a45
mov dword [0x7a1de8], edi
jmp 0x585a60
mov ebp, edi
lea edi, [0x7a1de8]
mov esi, eax
mov eax, ebp
call fcn.00463730
mov eax, esi
mov edi, ebp
jmp 0x585a60
mov ebx, dword [esp + 0x58]
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], edi
mov ebx, dword [esp + 0x138]
test ebx, ebx
je 0x585a92
nop
movzx ebp, byte [ebx + 0xf]
mov esi, ebp
and ebp, 0x1f
xchg esi, eax
test al, 0x20
xchg esi, eax
jne 0x585a98
or ebp, 0x80
jmp 0x585a98
xor ebp, ebp
xor ebx, ebx
xor edi, edi
mov dword [esp + 0x20], ebp
mov dword [esp + 0x114], edi
mov dword [esp + 0x10c], ebx
test edx, 0x200
jne 0x585ace
lea esi, [0x663100]
mov esi, dword [esp + 0x164]
mov dword [esp + 0x11c], esi
lea esi, [0x663100]
jmp 0x585b21
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov ecx, dword [esp + 0x168]
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x16c]
mov ebx, dword [esp + 0x10c]
mov ebp, dword [esp + 0x20]
mov edi, dword [esp + 0x114]
mov esi, eax
mov dword [esp + 0x11c], ecx
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x2c], esi
test ebp, ebp
je 0x585b4b
test ebp, 0x200
jne 0x585b4b
mov dword [esp + 0xb4], eax
lea eax, [0x663100]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xb4]
jmp 0x585b88
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
call fcn.004be9f0
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x114]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x12c]
mov ebp, dword [esp + 0x28]
cmp esi, ebp
jne 0x585c1a
mov dword [esp], esi
mov eax, dword [esp + 0x11c]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call fcn.00403850
movzx eax, byte [esp + 0xc]
test al, al
jne 0x585bc8
mov eax, dword [esp + 0x12c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x16c]
jmp 0x585c1a
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x10c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x114]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
call fcn.004bd9d0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
mov ebx, dword [esp + 0x15c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x160]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
mov eax, dword [esp + 0x164]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
call fcn.00582a40
mov byte [esp + 0x170], 0
add esp, 0x158
ret
mov dword [esp + 0x124], ecx
mov dword [esp + 0x4c], eax
mov edx, dword [esp + 0x54]
cmp edx, 8
jne 0x585cd1
mov edx, dword [esp + 0x12c]
cmp dword [edx], 0x69622121
jne 0x585cd1
cmp dword [edx + 4], 0x7972616e
jne 0x585cd1
mov edx, dword [esp + 0x58]
lea ebx, [0x5e1fa0]
cmp edx, ebx
jne 0x585e13
mov eax, dword [esp + 0x134]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044e080
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x585cfe
mov eax, dword [esp + 0x160]
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp], 0
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.0044e080
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
mov ebx, dword [ebx + 0x10]
mov ebp, dword [esp + 0x124]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
call ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
jne 0x585dd5
mov byte [esp + 0x170], 1
add esp, 0x158
ret
mov eax, dword [esp + 0x164]
mov dword [esp], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x14], eax
call fcn.004bd9d0
mov byte [esp + 0x170], 1
add esp, 0x158
ret
mov eax, dword [esp + 0x15c]
mov dword [esp], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x16c]
mov dword [esp + 0xc], eax
call fcn.00584080
movzx eax, byte [esp + 0x10]
mov byte [esp + 0x170], al
add esp, 0x158
ret
nop
mov dword [esp + 0x150], ecx
mov dword [esp + 0x154], edx
lea eax, [0x5e8640]
mov dword [esp], eax
lea ecx, [esp + 0x150]
mov dword [esp + 4], ecx
call fcn.004094a0
mov eax, dword [esp + 8]
lea ecx, [0x5e8640]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435720
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
lea eax, [0x5e1fa0]
mov dword [esp], eax
lea eax, [0x661484]
mov dword [esp + 4], eax
call fcn.00435720
nop
lea eax, [esp + 0xcc]
mov dword [esp], eax
lea eax, [0x60bed4]
mov dword [esp + 4], eax
mov dword [esp + 8], 6
lea eax, [0x61a580]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
call fcn.0044dc10
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.004c4b50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x150], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], eax
mov dword [esp + 0x154], ecx
lea eax, [0x5e8640]
mov dword [esp], eax
lea ecx, [esp + 0x150]
mov dword [esp + 4], ecx
call fcn.004094a0
mov eax, dword [esp + 8]
lea ecx, [0x5e8640]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435720
mov dword [esp], edx
mov dword [esp + 4], ebp
lea eax, [0x5e18e0]
mov dword [esp + 8], eax
call fcn.00409340
mov eax, 0x12
call fcn.00463810
nop
call fcn.00462320
jmp fcn.00584150