Function at 0x5a55ec
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x8ad45c
call fcn.00879bb8
sub esp, 0x310
push ebx
push esi
push edi
mov dword [ebp - 0x84], ecx
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.005a728b
mov dword [ebp - 0x5c], ebx
mov dword [ebp - 0x58], ebx
mov esi, 0x980690
push esi
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 2
call fcn.00403191
push esi
lea ecx, [ebp - 0xec]
mov byte [ebp - 4], 3
call fcn.00403191
push ebx
push ebx
lea eax, [ebp - 0x10c]
push eax
lea eax, [ebp - 0xec]
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 4
call fcn.00411641
push ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.004033a1
lea eax, [ebp - 0x2ec]
push eax
mov byte [ebp - 4], 4
call fcn.00405a1d
mov ecx, eax
call fcn.00402660
mov ecx, eax
call fcn.00404a02
mov ecx, eax
mov byte [ebp - 4], 6
call fcn.004032b4
cmp eax, ebx
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0x1c], ebx
je 0x5a56b8
lea eax, [ebp - 0xd4]
push eax
lea ecx, [ebp - 0x1c]
call fcn.00404b30
cmp eax, ebx
jge 0x5a56b8
cmp eax, 0x80004002
je 0x5a56b8
push eax
call fcn.00878dfb
lea eax, [ebp - 0x2ec]
push eax
mov byte [ebp - 4], 0xa
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a56d3
push eax
call fcn.00878dfb
lea eax, [ebp - 0xec]
push eax
mov byte [ebp - 4], 9
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a56ee
push eax
call fcn.00878dfb
lea eax, [ebp - 0x10c]
push eax
mov byte [ebp - 4], 8
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a5709
push eax
call fcn.00878dfb
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x5eb
mov edi, 0x97bc68
push eax
mov ecx, edi
call fcn.00679e4e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0xc
call fcn.00412550
mov esi, eax
neg esi
sbb esi, esi
lea eax, [ebp - 0x78]
neg esi
push eax
mov dword [ebp - 0x88], esi
mov byte [ebp - 4], 8
call fcn.00402bc3
add esp, 0xc
cmp eax, ebx
jge 0x5a576b
push eax
call fcn.00878dfb
cmp esi, ebx
jne 0x5a5834
xor esi, esi
cmp dword [ebp - 0x1c], ebx
jne 0x5a5784
push 0x80004003
call fcn.00878dfb
mov ecx, dword [ebp - 0x1c]
call fcn.0040cf4d
cmp esi, eax
jae 0x5a5834
push 0x20
pop eax
call fcn.0087a1b0
mov eax, esp
push ebx
push ebx
push eax
push esi
call fcn.00412335
pop ecx
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.004033a1
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.004032b4
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x60]
push eax
lea ecx, [ebp - 0x5c]
call fcn.0041a581
cmp eax, ebx
jge 0x5a57f5
cmp eax, 0x80004002
je 0x5a57f5
push eax
call fcn.00878dfb
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 4], 8
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a580d
push eax
call fcn.00878dfb
push ebx
lea ecx, [ebp - 0x5c]
call fcn.004115ef
test al, al
jne 0x5a582e
push 0xffffffffffffffff
lea ecx, [ebp - 0x58]
call fcn.0048bcfb
push dword [ebp - 0x5c]
mov ecx, eax
call fcn.00404867
inc esi
jmp 0x5a5775
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x5fb
push eax
mov ecx, edi
call fcn.00679e4e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0x10
call fcn.00412550
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0xc4], eax
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 4], 8
call fcn.00402bc3
add esp, 0xc
cmp eax, ebx
jge 0x5a588f
push eax
call fcn.00878dfb
push 0x64
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x3ca
push eax
mov ecx, edi
call fcn.00679e4e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0x12
call fcn.00412550
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x78]
push eax
mov byte [ebp - 4], 8
call fcn.00402bc3
add esp, 0xc
cmp eax, ebx
jge 0x5a58e5
push eax
call fcn.00878dfb
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0xe90
push eax
mov ecx, edi
call fcn.00679e4e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0x14
call fcn.00412550
mov esi, eax
neg esi
lea eax, [ebp - 0x78]
sbb esi, esi
push eax
neg esi
mov byte [ebp - 4], 8
call fcn.00402bc3
add esp, 0xc
cmp eax, ebx
jge 0x5a593c
push eax
call fcn.00878dfb
cmp esi, ebx
je 0x5a599d
push 0x64
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x3cf
push eax
mov ecx, edi
call fcn.00679e4e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0x16
call fcn.00412550
mov esi, eax
call fcn.0087ad85
cdq
push 0x19
pop ecx
idiv ecx
push 0x64
pop ecx
mov byte [ebp - 4], 8
add edx, 0x1e
imul esi, edx
mov eax, esi
cdq
idiv ecx
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x78]
jmp 0x5a59dc
push ebx
push ecx
mov eax, esp
mov dword [ebp - 0x38], esp
push 0x3cf
push eax
mov ecx, edi
call fcn.00679e4e
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 8
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0x18
call fcn.00412550
mov dword [ebp - 0x68], eax
mov byte [ebp - 4], 8
lea eax, [ebp - 0x78]
push eax
call fcn.00402bc3
add esp, 0xc
cmp eax, ebx
jge 0x5a59ef
push eax
call fcn.00878dfb
cmp dword [ebp - 0x68], ebx
jne 0x5a5ba5
mov esi, 0x980690
push esi
lea ecx, [ebp - 0xfc]
call fcn.00403191
push 3
push ebx
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0x19
call fcn.004031b7
cmp dword [0x97c1ac], ebx
mov byte [ebp - 4], 0x1a
mov edi, 0x80004003
jne 0x5a5a2f
push edi
call fcn.00878dfb
mov ecx, dword [0x97c1ac]
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp + 0x10]
push eax
call fcn.0042a39f
lea eax, [ebp - 0x54]
push eax
mov byte [ebp - 4], 0x1d
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a5a66
push eax
call fcn.00878dfb
lea eax, [ebp - 0xfc]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a5a81
push eax
call fcn.00878dfb
push esi
lea ecx, [ebp - 0xec]
call fcn.00403191
push esi
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x1e
call fcn.00403191
cmp dword [ebp + 0x10], ebx
mov byte [ebp - 4], 0x1f
jne 0x5a5aac
push edi
call fcn.00878dfb
mov ecx, dword [ebp + 0x10]
lea eax, [ebp + 0xc]
push eax
call fcn.004113e5
mov esi, eax
cmp dword [esi], ebx
mov byte [ebp - 4], 0x20
jne 0x5a5ac8
push edi
call fcn.00878dfb
mov ecx, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0xec]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov edx, dword [ecx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x10c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, 0xff
push eax
movsd dword es:[edi], dword [esi]
push eax
push ecx
mov dword [ebp + 0x14], ecx
movsd dword es:[edi], dword [esi]
call dword [edx + 0x90]
cmp eax, ebx
jge 0x5a5b0d
push 0x963de8
push dword [ebp + 0x14]
push eax
call fcn.00878e09
lea ecx, [ebp + 0xc]
call fcn.004125d9
lea eax, [ebp - 0x10c]
push eax
mov byte [ebp - 4], 0x1e
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a5b30
push eax
call fcn.00878dfb
lea eax, [ebp - 0xec]
push eax
mov byte [ebp - 4], 0x1c
call fcn.00402bc3
cmp eax, ebx
pop ecx
jge 0x5a5b4b
push eax
call fcn.00878dfb
mov eax, dword [ebp - 0x84]
lea ecx, [eax + 0x5c]
call fcn.0048bb7f
push dword [ebp + 0x10]
mov ecx, eax
call fcn.00434bfb
lea ecx, [ebp + 0x10]
call fcn.00412600
lea ecx, [ebp - 0x1c]
call fcn.004027eb
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.0041a545
lea ecx, [ebp - 0x5c]
call fcn.004125e6
mov eax, dword [ebp + 8]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x5a7172
add eax, 0xfffffff4
push eax
call fcn.00403384
pop ecx
jmp 0x5a7172
mov ecx, dword [ebp + 0x14]
imul ecx, ecx, 0x1f40
mov eax, 0xc350
sub eax, ecx
cmp dword [ebp - 0x68], ebx
mov dword [ebp + 0x14], eax
mov dword [ebp - 0x7c], ebx
jle 0x5a7138
mov ebx, dword [ebp - 0x30]
mov edi, 0x190
mov esi, 0x12c
call fcn.0087ad85
cdq
push 4
pop ecx
idiv ecx
mov dword [ebp - 0x28], edx
call fcn.0087ad85
cdq
push 4
pop ecx
idiv ecx
mov eax, dword [ebp - 0x28]
imul eax, edx
add eax, 0xf
mov dword [ebp - 0x3c], eax
call fcn.0087ad85
cdq
mov ecx, 0x168
idiv ecx
mov dword [ebp - 0x28], edx
call fcn.0087ad85
cdq
mov ecx, 0xbb8
idiv ecx
add edx, ecx
cmp dword [ebp - 0x88], 0
mov dword [ebp - 0xc0], edx
jne 0x5a5c45
mov eax, dword [ebp - 0x58]
test eax, eax
jne 0x5a5c30
and dword [ebp - 0x14], eax
jmp 0x5a5c36
mov eax, dword [eax - 4]
mov dword [ebp - 0x14], eax
call fcn.0087ad85
xor edx, edx
div dword [ebp - 0x14]
mov dword [ebp - 0x14], edx
jmp 0x5a5c49
and dword [ebp - 0x14], 0
mov eax, dword [ebp + 0x10]
sub eax, 0
je 0x5a5e46
dec eax
je 0x5a5e01
dec eax
je 0x5a5dbc
dec eax
je 0x5a5d89
dec eax
je 0x5a5d17
dec eax
je 0x5a5ca6
dec eax
jne 0x5a5e8c
call fcn.0087ad85
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.0087ad85
cdq
mov ecx, 0x258
idiv ecx
mov ebx, edx
sub ebx, esi
mov dword [ebp - 0x30], ebx
jmp 0x5a5e8c
call fcn.0087ad85
cdq
push 0x14
pop ecx
idiv ecx
add edx, 0x186
mov dword [ebp - 0x20], edx
call fcn.0087ad85
fild dword [ebp - 0x28]
push 0x14
pop ecx
cdq
fst qword [ebp - 0x4c]
idiv ecx
push ecx
push ecx
fstp qword [esp]
mov ebx, edx
add ebx, 0x122
mov dword [ebp - 0x30], ebx
call fcn.0087ae74
fmul qword [0x8ea330]
fadd qword [0x8ea320]
call fcn.0087ac9c
fld qword [ebp - 0x4c]
fstp qword [esp]
mov dword [ebp - 0x2c], eax
call fcn.0087adc4
fmul qword [0x8ea330]
pop ecx
pop ecx
fadd qword [0x8ec778]
call fcn.0087ac9c
jmp 0x5a5e89
call fcn.0087ad85
cdq
push 0x14
pop ecx
idiv ecx
add edx, 0x186
mov dword [ebp - 0x20], edx
call fcn.0087ad85
fild dword [ebp - 0x28]
push 0x14
pop ecx
cdq
fst qword [ebp - 0x4c]
idiv ecx
push ecx
push ecx
fstp qword [esp]
mov ebx, edx
add ebx, 0x24e
mov dword [ebp - 0x30], ebx
call fcn.0087ae74
fmul qword [0x8ec770]
fadd qword [0x8ea320]
call fcn.0087ac9c
fld qword [ebp - 0x4c]
fstp qword [esp]
mov dword [ebp - 0x2c], eax
call fcn.0087adc4
call fcn.0087ac9c
push eax
call fcn.0087a90a
add esp, 0xc
imul eax, eax, 0x2d1
jmp 0x5a5e89
call fcn.0087ad85
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.0087ad85
cdq
mov ecx, 0x258
idiv ecx
mov eax, dword [ebp - 0x20]
mov ebx, edx
sub ebx, esi
add eax, 0x190
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], eax
jmp 0x5a5deb
call fcn.0087ad85
cdq
mov ecx, 0x320
idiv ecx
sub edi, edx
mov dword [ebp - 0x20], edi
call fcn.0087ad85
cdq
mov ecx, 0x258
idiv ecx
mov ebx, edx
sub ebx, esi
add edi, 0xfffffe70
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], edi
call fcn.0087ad85
cdq
mov ecx, 0xc8
idiv ecx
lea eax, [edx + ebx - 0x64]
jmp 0x5a5e89
call fcn.0087ad85
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.0087ad85
cdq
mov ecx, 0x258
idiv ecx
mov ebx, esi
sub ebx, edx
mov dword [ebp - 0x30], ebx
call fcn.0087ad85
cdq
mov ecx, 0xc8
idiv ecx
mov eax, dword [ebp - 0x20]
lea eax, [edx + eax - 0x64]
mov dword [ebp - 0x2c], eax
lea eax, [ebx - 0x12c]
jmp 0x5a5e89
call fcn.0087ad85
cdq
mov ecx, 0x320
idiv ecx
sub edx, edi
mov dword [ebp - 0x20], edx
call fcn.0087ad85
cdq
mov ecx, 0x258
idiv ecx
mov ebx, edx
sub ebx, esi
mov dword [ebp - 0x30], ebx
call fcn.0087ad85
cdq
mov ecx, 0xc8
idiv ecx
mov eax, dword [ebp - 0x20]
lea eax, [edx + eax - 0x64]
mov dword [ebp - 0x2c], eax
lea eax, [ebx + 0x12c]
mov dword [ebp - 0x34], eax
xor edi, edi
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x88], edi
mov byte [ebp - 4], 0x21
jne 0x5a60c3
mov esi, 0x980690
push esi
lea ecx, [ebp - 0x16c]
call fcn.00403191
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x14]
mov eax, dword [eax + ecx*4]
push 1
push eax
lea ecx, [ebp - 0xfc]
call fcn.0040ee87
cmp dword [0x97c1ac], edi
mov byte [ebp - 4], 0x23
jne 0x5a5edf
push 0x80004003
call fcn.00878dfb
mov ecx, dword [0x97c1ac]
lea eax, [ebp - 0x16c]
push eax
lea eax, [ebp - 0xfc]
push eax
push 0xc0061508
push edi
push edi
push edi
push edi
lea eax, [ebp - 0xa8]
push eax
call fcn.0042a39f
push dword [eax]
lea ecx, [ebp - 0x10]
call fcn.00434bfb
lea ecx, [ebp - 0xa8]
call fcn.00412600
lea eax, [ebp - 0xfc]
push eax
mov byte [ebp - 4], 0x22
call fcn.00402bc3
cmp eax, edi
pop ecx
jge 0x5a5f38
push eax
call fcn.00878dfb
lea eax, [ebp - 0x16c]
push eax
mov byte [ebp - 4], 0x21
call fcn.00402bc3
cmp eax, edi
pop ecx
jge 0x5a5f53
push eax
call fcn.00878dfb
push 0xff
push ecx
mov eax, esp
mov dword [ebp - 0x48], esp
push 0x3b6
push eax
mov ecx, 0x97bc68
call fcn.00679e4e
lea eax, [ebp - 0xc8]
push eax
push dword [ebp - 0x14]
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x24
call fcn.0048bd86
mov ecx, eax
call fcn.004115d9
mov ecx, eax
call fcn.00404e7f
lea ecx, [ebp - 0x30c]
push ecx
mov ecx, eax
mov byte [ebp - 4], 0x26
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
push eax
mov byte [ebp - 4], 0x27
call fcn.00412550
mov dword [ebp - 0x60], eax
lea eax, [ebp - 0x30c]
push eax
mov byte [ebp - 4], 0x26
call fcn.00402bc3
add esp, 0xc
cmp eax, edi
jge 0x5a5fd5
push eax
call fcn.00878dfb
lea ecx, [ebp - 0xc8]
mov byte [ebp - 4], 0x21
call fcn.004027eb
push esi
lea ecx, [ebp - 0x22c]
call fcn.00403191
push esi
lea ecx, [ebp - 0x29c]
mov byte [ebp - 4], 0x28
call fcn.00403191
cmp dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x29
jne 0x5a6013
push 0x80004003
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x94]
push eax
call fcn.004113e5
mov esi, eax
cmp dword [esi], edi
mov byte [ebp - 4], 0x2a
jne 0x5a6036
push 0x80004003
call fcn.00878dfb
mov eax, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x22c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x29c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0
push dword [ebp - 0x60]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x5a6079
push 0x963de8
push dword [ebp - 0x14]
push eax
call fcn.00878e09
lea ecx, [ebp - 0x94]
call fcn.004125d9
lea eax, [ebp - 0x29c]
push eax
mov byte [ebp - 4], 0x28
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a609f
push eax
call fcn.00878dfb
lea eax, [ebp - 0x22c]
push eax
mov byte [ebp - 4], 0x21
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a631d
push eax
call fcn.00878dfb
jmp 0x5a631d
xor esi, esi
push 0x20
pop eax
call fcn.0087a1b0
mov eax, esp
push esi
push esi
push eax
push edi
call fcn.00412335
pop ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push eax
call fcn.004033a1
lea eax, [ebp - 0x2fc]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x21
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
mov ecx, eax
mov byte [ebp - 4], 0x2c
call fcn.004032b4
cmp eax, esi
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0x64], esi
je 0x5a6136
lea eax, [ebp - 0xd8]
push eax
lea ecx, [ebp - 0x64]
call fcn.00404b30
cmp eax, esi
jge 0x5a6136
cmp eax, 0x80004002
je 0x5a6136
push eax
call fcn.00878dfb
lea eax, [ebp - 0x2fc]
push eax
mov byte [ebp - 4], 0x2e
call fcn.00402bc3
cmp eax, esi
pop ecx
jge 0x5a6151
push eax
call fcn.00878dfb
cmp dword [ebp - 0x64], esi
mov byte [ebp - 4], 0x21
lea ecx, [ebp - 0x64]
je 0x5a6168
call fcn.004027eb
inc edi
jmp 0x5a60c5
call fcn.004027eb
call fcn.0087ad85
cdq
idiv edi
push 0x20
pop eax
mov edi, edx
call fcn.0087a1b0
mov eax, esp
push esi
push esi
push eax
push edi
call fcn.00412335
pop ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push eax
call fcn.004033a1
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0x21
call fcn.0040263d
mov ecx, eax
call fcn.004048a4
mov ecx, eax
mov byte [ebp - 4], 0x30
call fcn.004032b4
cmp eax, esi
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0x80], esi
je 0x5a61e8
lea eax, [ebp - 0xdc]
push eax
lea ecx, [ebp - 0x80]
call fcn.00404b30
cmp eax, esi
jge 0x5a61e8
cmp eax, 0x80004002
je 0x5a61e8
push eax
call fcn.00878dfb
lea eax, [ebp - 0x31c]
push eax
mov byte [ebp - 4], 0x32
call fcn.00402bc3
cmp eax, esi
pop ecx
jge 0x5a6203
push eax
call fcn.00878dfb
push esi
push 0xff
push 0xc0061508
push ecx
mov ecx, esp
mov dword [ebp - 0x48], esp
push esi
call fcn.00424e0a
push esi
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push esi
mov byte [ebp - 4], 0x33
call fcn.00424dd7
push esi
push ecx
lea eax, [ebp - 0x80]
mov ecx, esp
mov dword [ebp - 0x48], esp
push eax
call fcn.00424dbc
lea eax, [ebp - 0x9c]
push eax
mov byte [ebp - 4], 0x32
call fcn.0042e5bf
add esp, 0x28
push dword [eax]
lea ecx, [ebp - 0x10]
call fcn.00434bfb
lea ecx, [ebp - 0x9c]
call fcn.00412600
mov edi, 0x980690
push edi
lea ecx, [ebp - 0x2ac]
call fcn.00403191
push edi
lea ecx, [ebp - 0x14c]
mov byte [ebp - 4], 0x34
call fcn.00403191
mov eax, dword [ebp - 0x10]
cmp eax, esi
mov byte [ebp - 4], 0x35
jne 0x5a629d
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x10]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2ac]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x14c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0x20
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x110]
test eax, eax
jge 0x5a62db
push 0x963df8
push dword [ebp - 0x14]
push eax
call fcn.00878e09
lea eax, [ebp - 0x14c]
push eax
mov byte [ebp - 4], 0x34
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a62f6
push eax
call fcn.00878dfb
lea eax, [ebp - 0x2ac]
push eax
mov byte [ebp - 4], 0x32
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6311
push eax
call fcn.00878dfb
lea ecx, [ebp - 0x80]
mov byte [ebp - 4], 0x21
call fcn.004027eb
cmp dword [ebp - 0xc4], 0
jne 0x5a6408
mov esi, 0x980690
push esi
lea ecx, [ebp - 0x24c]
call fcn.00403191
push esi
lea ecx, [ebp - 0x11c]
mov byte [ebp - 4], 0x36
call fcn.00403191
cmp dword [ebp - 0x10], 0
mov byte [ebp - 4], 0x37
jne 0x5a635f
push 0x80004003
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xa4]
push eax
call fcn.0042bc90
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x38
jne 0x5a6383
push 0x80004003
call fcn.00878dfb
mov eax, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x24c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x3c]
lea esi, [ebp - 0x11c]
push dword [ebp - 0x3c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x5a63c7
push 0x963de8
push dword [ebp - 0x14]
push eax
call fcn.00878e09
lea ecx, [ebp - 0xa4]
call fcn.004125d9
lea eax, [ebp - 0x11c]
push eax
mov byte [ebp - 4], 0x36
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a63ed
push eax
call fcn.00878dfb
lea eax, [ebp - 0x24c]
push eax
mov byte [ebp - 4], 0x21
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6408
push eax
call fcn.00878dfb
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x18], eax
mov edi, 0x3b1
push edi
lea eax, [ebp - 0xd0]
mov esi, 0x97bc68
push eax
mov ecx, esi
mov byte [ebp - 4], 0x3c
call fcn.00679d86
mov eax, dword [eax]
push 0
lea ecx, [ebp - 0x24]
push ecx
push eax
mov byte [ebp - 4], 0x3d
call fcn.00437222
mov eax, dword [ebp - 0xd0]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x3c
je 0x5a6460
add eax, 0xfffffff4
push eax
call fcn.00403384
pop ecx
push edi
lea eax, [ebp - 0xac]
push eax
mov ecx, esi
call fcn.00679d86
mov eax, dword [eax]
push 0
lea ecx, [ebp - 0x44]
push ecx
push eax
mov byte [ebp - 4], 0x3e
call fcn.00437222
mov eax, dword [ebp - 0xac]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x3c
je 0x5a649c
add eax, 0xfffffff4
push eax
call fcn.00403384
pop ecx
push edi
lea eax, [ebp - 0xcc]
push eax
mov ecx, esi
call fcn.00679d86
mov eax, dword [eax]
push 0
lea ecx, [ebp - 0x40]
push ecx
push eax
mov byte [ebp - 4], 0x3f
call fcn.00437222
mov eax, dword [ebp - 0xcc]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x3c
je 0x5a64d8
add eax, 0xfffffff4
push eax
call fcn.00403384
pop ecx
push edi
lea eax, [ebp - 0xb4]
push eax
mov ecx, esi
call fcn.00679d86
mov eax, dword [eax]
push 0
lea ecx, [ebp - 0x18]
push ecx
push eax
mov byte [ebp - 4], pe_nt_image_headers32
call fcn.00437222
mov eax, dword [ebp - 0xb4]
add esp, 0xc
test eax, eax
mov byte [ebp - 4], 0x3c
je 0x5a6514
add eax, 0xfffffff4
push eax
call fcn.00403384
pop ecx
push 1
push dword [ebp - 0x44]
lea ecx, [ebp - 0x18c]
call fcn.0040ee87
mov eax, dword [ebp - 0x40]
test eax, eax
mov byte [ebp - 4], 0x41
jne 0x5a653c
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x40]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x18c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x14], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x64]
test eax, eax
jge 0x5a6566
push 0x963de8
push dword [ebp - 0x14]
push eax
call fcn.00878e09
lea eax, [ebp - 0x18c]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6581
push eax
call fcn.00878dfb
mov esi, 0x980690
push esi
lea ecx, [ebp - 0x1ac]
call fcn.00403191
push esi
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 0x42
call fcn.00403191
mov ecx, dword [ebp - 0x40]
test ecx, ecx
mov byte [ebp - 4], 0x43
jne 0x5a65ba
push 0x80004003
call fcn.00878dfb
mov ecx, dword [ebp - 0x40]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x3c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1ac]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2dc]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x14], edx
cdq
movsd dword es:[edi], dword [esi]
sub eax, edx
push 0
sar eax, 1
movsd dword es:[edi], dword [esi]
push eax
mov eax, dword [ebp - 0x14]
push ecx
mov dword [ebp - 0x48], ecx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x5a6607
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x2dc]
push eax
mov byte [ebp - 4], 0x42
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6622
push eax
call fcn.00878dfb
lea eax, [ebp - 0x1ac]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a663d
push eax
call fcn.00878dfb
push 0x980690
lea ecx, [ebp - 0x26c]
call fcn.00403191
mov eax, dword [ebp - 0x44]
test eax, eax
mov byte [ebp - 4], 0x44
jne 0x5a6665
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
fild dword [ebp - 0x28]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x26c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
push ecx
movsd dword es:[edi], dword [esi]
fstp qword [esp]
push eax
mov dword [ebp - 0x48], eax
call dword [ecx + 0xa0]
test eax, eax
jge 0x5a669a
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x26c]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a66b5
push eax
call fcn.00878dfb
push 3
push 0x7d0
lea ecx, [ebp - 0x1cc]
call fcn.004031b7
mov eax, dword [ebp - 0x44]
test eax, eax
mov byte [ebp - 4], 0x45
jne 0x5a66df
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x44]
mov ecx, dword [eax]
fldz
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1cc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
push ecx
movsd dword es:[edi], dword [esi]
fstp qword [esp]
push eax
mov dword [ebp - 0x48], eax
call dword [ecx + 0xa0]
test eax, eax
jge 0x5a6713
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x1cc]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a672e
push eax
call fcn.00878dfb
cmp dword [ebp + 0x10], 4
je 0x5a699a
cmp dword [ebp + 0x10], 5
je 0x5a699a
push 3
push 0
lea ecx, [ebp - 0x1ec]
call fcn.004031b7
cmp dword [0x97c1ac], 0
mov byte [ebp - 4], 0x46
jne 0x5a6768
push 0x80004003
call fcn.00878dfb
mov ecx, dword [0x97c1ac]
lea eax, [ebp - 0xbc]
push eax
call fcn.00429328
mov eax, dword [eax]
push 1
push eax
lea ecx, [ebp - 0x2cc]
call fcn.0040ee87
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x48
jne 0x5a67a2
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x3c]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1ec]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ecx + 0x258]
push esi
lea esi, [ecx + 0x320]
push esi
mov edx, dword [eax]
mov esi, 0xfffffed4
sub esi, ecx
push esi
mov esi, 0xfffffe70
sub esi, ecx
push esi
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2cc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
call dword [edx + 0x9c]
test eax, eax
jge 0x5a67ff
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x2cc]
push eax
mov byte [ebp - 4], 0x47
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a681a
push eax
call fcn.00878dfb
lea ecx, [ebp - 0xbc]
call fcn.004125d9
lea eax, [ebp - 0x1ec]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6840
push eax
call fcn.00878dfb
mov esi, 0x980690
push esi
lea ecx, [ebp - 0x20c]
call fcn.00403191
push esi
lea ecx, [ebp - 0x28c]
mov byte [ebp - 4], 0x49
call fcn.00403191
mov eax, dword [ebp - 0x24]
test eax, eax
mov byte [ebp - 4], 0x4a
jne 0x5a6879
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x24]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x20c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x28c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
push dword [ebp - 0x20]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x5a68b9
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x28c]
push eax
mov byte [ebp - 4], 0x49
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a68d4
push eax
call fcn.00878dfb
lea eax, [ebp - 0x20c]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a68ef
push eax
call fcn.00878dfb
push 1
push dword [ebp - 0x24]
lea ecx, [ebp - 0x2bc]
call fcn.0040ee87
cmp dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x4b
jne 0x5a6913
push 0x80004003
call fcn.00878dfb
mov ebx, dword [ebp - 0x18]
mov eax, dword [ebx]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x2bc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x64]
test eax, eax
jge 0x5a693b
push 0x963de8
push ebx
push eax
call fcn.00878e09
lea eax, [ebp - 0x2bc]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6956
push eax
call fcn.00878dfb
cmp dword [ebp - 0x18], 0
jne 0x5a6966
push 0x80004003
call fcn.00878dfb
mov esi, dword [ebp - 0x18]
mov eax, dword [esi]
push 5
push dword [ebp - 0x90]
push 0x64
push 0x64
push dword [ebp - 0x40]
push esi
call dword [eax + 0x98]
test eax, eax
jge 0x5a6bf4
push 0x963de8
push esi
push eax
call fcn.00878e09
jmp 0x5a6bf4
mov ecx, dword [0x978364]
lea eax, [ebp - 0x98]
push eax
call fcn.00485656
mov eax, dword [eax]
push 1
push eax
lea ecx, [ebp - 0x12c]
call fcn.0040ee87
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], 0x4d
jne 0x5a69d4
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x12c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x64]
test eax, eax
jge 0x5a69fe
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x12c]
push eax
mov byte [ebp - 4], 0x4c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6a19
push eax
call fcn.00878dfb
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x3c
call fcn.004125d9
mov esi, 0x980690
push esi
lea ecx, [ebp - 0x15c]
call fcn.00403191
push esi
lea ecx, [ebp - 0x13c]
mov byte [ebp - 4], 0x4e
call fcn.00403191
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], 0x4f
jne 0x5a6a61
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x18]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x15c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x13c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
push dword [ebp - 0x20]
movsd dword es:[edi], dword [esi]
push eax
mov dword [ebp - 0x48], eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x90]
test eax, eax
jge 0x5a6aa1
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x13c]
push eax
mov byte [ebp - 4], 0x4e
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6abc
push eax
call fcn.00878dfb
lea eax, [ebp - 0x15c]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6ad7
push eax
call fcn.00878dfb
push 3
push 0
lea ecx, [ebp - 0x19c]
call fcn.004031b7
mov ecx, dword [0x978364]
lea eax, [ebp - 0xa0]
push eax
mov byte [ebp - 4], 0x50
call fcn.00485656
mov eax, dword [eax]
push 1
push eax
lea ecx, [ebp - 0x17c]
call fcn.0040ee87
mov eax, dword [ebp - 0x34]
cmp ebx, eax
mov byte [ebp - 4], 0x52
mov dword [ebp - 0x28], ebx
jl 0x5a6b1d
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x2c]
cmp eax, ecx
mov dword [ebp - 0x14], eax
jl 0x5a6b2d
mov dword [ebp - 0x14], ecx
cmp dword [ebp - 0x18], 0
jne 0x5a6b3d
push 0x80004003
call fcn.00878dfb
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x34]
mov ebx, dword [ebp - 0x18]
push eax
call fcn.0087a90a
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x20]
sub eax, dword [ebp - 0x2c]
push eax
call fcn.0087a90a
mov ecx, dword [ebx]
mov edx, dword [ebp - 0x30]
push ecx
push ecx
mov edi, esp
push dword [ebp - 0x48]
lea esi, [ebp - 0x19c]
push eax
xor eax, eax
cmp dword [ebp - 0x34], edx
mov edx, dword [ebp - 0x20]
setl al
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, dword [ebp - 0x28]
movsd dword es:[edi], dword [esi]
push eax
xor eax, eax
cmp dword [ebp - 0x2c], edx
movsd dword es:[edi], dword [esi]
setl al
lea esi, [ebp - 0x17c]
add eax, dword [ebp - 0x14]
push eax
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x9c]
test eax, eax
jge 0x5a6bb3
push 0x963de8
push ebx
push eax
call fcn.00878e09
lea eax, [ebp - 0x17c]
push eax
mov byte [ebp - 4], 0x51
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6bce
push eax
call fcn.00878dfb
lea ecx, [ebp - 0xa0]
call fcn.004125d9
lea eax, [ebp - 0x19c]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6bf4
push eax
call fcn.00878dfb
push 1
push dword [ebp - 0x18]
lea ecx, [ebp - 0x1bc]
call fcn.0040ee87
cmp dword [ebp - 0x10], 0
mov byte [ebp - 4], 0x53
jne 0x5a6c18
push 0x80004003
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x8c]
push eax
call fcn.0042fb5e
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x54
jne 0x5a6c3c
push 0x80004003
call fcn.00878dfb
mov ebx, dword [esi]
mov eax, dword [ebx]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1bc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x64]
test eax, eax
mov edi, 0x963de8
jge 0x5a6c64
push edi
push ebx
push eax
call fcn.00878e09
lea ecx, [ebp - 0x8c]
call fcn.004125d9
lea eax, [ebp - 0x1bc]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6c8a
push eax
call fcn.00878dfb
cmp dword [ebp - 0x10], 0
mov ebx, 0x80004003
jne 0x5a6ca7
push ebx
call fcn.00878dfb
cmp dword [ebp - 0x10], 0
jne 0x5a6ca7
push ebx
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xb0]
push eax
call fcn.0042fb5e
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x55
jne 0x5a6cc7
push ebx
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
mov esi, dword [esi]
call fcn.0042fb0a
push 0xfffffffffffffffe
pop ecx
cdq
idiv ecx
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x6c]
test eax, eax
jge 0x5a6cea
push edi
push esi
push eax
call fcn.00878e09
lea ecx, [ebp - 0xb0]
mov byte [ebp - 4], 0x3c
call fcn.004125d9
cmp dword [ebp - 0x10], 0
jne 0x5a6d11
push ebx
call fcn.00878dfb
cmp dword [ebp - 0x10], 0
jne 0x5a6d11
push ebx
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0xb8]
push eax
call fcn.0042fb5e
mov esi, eax
cmp dword [esi], 0
mov byte [ebp - 4], 0x56
jne 0x5a6d31
push ebx
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
mov esi, dword [esi]
call fcn.0042fb34
push 0xfffffffffffffffe
pop ecx
cdq
idiv ecx
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x74]
test eax, eax
jge 0x5a6d54
push edi
push esi
push eax
call fcn.00878e09
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 0x3c
call fcn.004125d9
cmp dword [ebp + 0xc], 2
jne 0x5a6df1
call fcn.0087ad85
cdq
mov ecx, 0xbb8
idiv ecx
push 3
lea ecx, [ebp - 0x1dc]
add edx, 0x12c
push edx
call fcn.004031b7
mov eax, dword [ebp - 0x18]
test eax, eax
mov byte [ebp - 4], 0x57
jne 0x5a6da2
push ebx
call fcn.00878dfb
mov eax, dword [ebp - 0x18]
mov ecx, dword [eax]
fldz
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1dc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
push ecx
movsd dword es:[edi], dword [esi]
fstp qword [esp]
push eax
mov dword [ebp - 0x48], eax
call dword [ecx + 0xa0]
test eax, eax
jge 0x5a6dd6
push 0x963de8
push dword [ebp - 0x48]
push eax
call fcn.00878e09
lea eax, [ebp - 0x1dc]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6df1
push eax
call fcn.00878dfb
xor edi, edi
cmp dword [ebp - 0x10], edi
jne 0x5a6dfe
push ebx
call fcn.00878dfb
mov esi, dword [ebp - 0x10]
mov eax, dword [esi]
push 0x1ffffff
push esi
call dword [eax + 0xe0]
cmp eax, edi
jge 0x5a6e1f
push 0x963df8
push esi
push eax
call fcn.00878e09
push 0x980690
lea ecx, [ebp - 0x21c]
call fcn.00403191
cmp dword [ebp - 0x10], edi
mov byte [ebp - 4], 0x58
jne 0x5a6e3e
push ebx
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
call fcn.0042a378
add eax, dword [ebp - 0xc0]
push 3
push eax
lea ecx, [ebp - 0x1fc]
call fcn.004031b7
mov eax, dword [ebp - 0x3c]
cmp eax, 0x64
mov byte [ebp - 4], 0x59
jle 0x5a6e6f
mov dword [ebp - 0x28], 0x32
jmp 0x5a6e7b
add eax, eax
mov ecx, eax
mov eax, dword [ebp - 0x60]
sub eax, ecx
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x10], edi
jne 0x5a6e86
push ebx
call fcn.00878dfb
mov ecx, dword [ebp - 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.004113e5
mov esi, eax
cmp dword [esi], edi
mov byte [ebp - 4], 0x5a
jne 0x5a6ea2
push ebx
call fcn.00878dfb
mov ebx, dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x21c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x1fc]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push 0xff
push dword [ebp - 0x28]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x5a6ee3
push 0x963de8
push ebx
push eax
call fcn.00878e09
lea ecx, [ebp - 0x38]
call fcn.004125d9
lea eax, [ebp - 0x1fc]
push eax
mov byte [ebp - 4], 0x58
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6f06
push eax
call fcn.00878dfb
lea eax, [ebp - 0x21c]
push eax
mov byte [ebp - 4], 0x3c
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a6f21
push eax
call fcn.00878dfb
cmp dword [ebp + 0x10], 0
jl 0x5a70e0
cmp dword [ebp + 0x10], 3
jle 0x5a7018
cmp dword [ebp + 0x10], 5
jg 0x5a70e0
push 3
push 0x10000000
lea ecx, [ebp - 0x25c]
call fcn.004031b7
cmp dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x5d
jne 0x5a6f65
push 0x80004003
call fcn.00878dfb
call fcn.0087ad85
cdq
mov ecx, 0x7530
idiv ecx
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x18]
lea eax, [edx + eax - 0x3a98]
cdq
idiv dword [ebp - 0x3c]
mov esi, eax
call fcn.0042a378
add esi, eax
push 3
push esi
lea ecx, [ebp - 0x23c]
call fcn.004031b7
cmp dword [ebp - 0x18], 0
mov byte [ebp - 4], 0x5e
jne 0x5a6fae
push 0x80004003
call fcn.00878dfb
sub esp, 0x10
mov edi, esp
mov ebx, dword [ebp - 0x18]
lea esi, [ebp - 0x25c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x34]
lea esi, [ebp - 0x23c]
push dword [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x5a6fee
push 0x963de8
push ebx
push eax
call fcn.00878e09
lea eax, [ebp - 0x23c]
push eax
mov byte [ebp - 4], 0x5d
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a7009
push eax
call fcn.00878dfb
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x25c]
jmp 0x5a70cf
push 3
push 0x10000000
lea ecx, [ebp - 0x78]
call fcn.004031b7
cmp dword [ebp - 0x24], 0
mov byte [ebp - 4], 0x5b
jne 0x5a703b
push 0x80004003
call fcn.00878dfb
mov ecx, dword [ebp - 0x24]
call fcn.0042a378
mov ecx, eax
mov eax, dword [ebp + 0x14]
cdq
idiv dword [ebp - 0x3c]
push 3
add ecx, eax
push ecx
lea ecx, [ebp - 0x27c]
call fcn.004031b7
cmp dword [ebp - 0x24], 0
mov byte [ebp - 4], 0x5c
jne 0x5a7070
push 0x80004003
call fcn.00878dfb
sub esp, 0x10
mov edi, esp
mov ebx, dword [ebp - 0x24]
lea esi, [ebp - 0x78]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [ebx]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
push dword [ebp - 0x34]
lea esi, [ebp - 0x27c]
push dword [ebp - 0x2c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
movsd dword es:[edi], dword [esi]
call dword [eax + 0x90]
test eax, eax
jge 0x5a70ad
push 0x963de8
push ebx
push eax
call fcn.00878e09
lea eax, [ebp - 0x27c]
push eax
mov byte [ebp - 4], 0x5b
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a70c8
push eax
call fcn.00878dfb
mov byte [ebp - 4], 0x3c
lea eax, [ebp - 0x78]
push eax
call fcn.00402bc3
test eax, eax
pop ecx
jge 0x5a70e0
push eax
call fcn.00878dfb
mov eax, dword [ebp - 0x84]
lea ecx, [eax + 0x5c]
call fcn.0048bb7f
push dword [ebp - 0x10]
mov ecx, eax
call fcn.00434bfb
lea ecx, [ebp - 0x18]
call fcn.004125d9
lea ecx, [ebp - 0x40]
call fcn.004125d9
lea ecx, [ebp - 0x44]
call fcn.004125d9
lea ecx, [ebp - 0x24]
call fcn.004125d9
mov eax, dword [ebp - 0x10]
test eax, eax
mov byte [ebp - 4], 8
je 0x5a7129
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
inc dword [ebp - 0x7c]
mov eax, dword [ebp - 0x7c]
cmp eax, dword [ebp - 0x68]
jl 0x5a5bc4
mov eax, dword [ebp - 0x1c]
test eax, eax
mov byte [ebp - 4], 2
je 0x5a7149
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 1
call fcn.0041a545
mov eax, dword [ebp - 0x5c]
and byte [ebp - 4], 0
test eax, eax
je 0x5a7166
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 8]
call fcn.00402676
mov ecx, dword [ebp - 0xc]
lea esp, [ebp - 0x328]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret 0x10