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

Disassembly:
push ebp
lea ebp, [esp - 0x68]
sub esp, 0xbe0
push ebx
mov ebx, ecx
mov eax, dword [ebx + 0x18]
push esi
push edi
mov edi, dword [eax + 0x68]
mov eax, dword [ebx + 0x50]
xor esi, esi
cmp eax, esi
mov dword [ebp + 0x5c], edi
je 0x3007fbc1
cmp dword [eax + 0x10], esi
jne 0x3007fbc1
call fcn.3007a07e
test eax, eax
je 0x3007fbc1
mov ecx, ebx
call fcn.3007b0d2
cmp dword [ebx + 0x4c], esi
je 0x3007fbdb
cmp dword [ebp + 0x78], esi
jne 0x3007fbea
test byte [ebx + 0x57], 1
je 0x3007fbea
mov ecx, ebx
call fcn.3007b0d2
push esi
jmp 0x3007fbde
push dword [ebp + 0x78]
mov ecx, ebx
push 0x1000000
call fcn.3000c96f
cmp dword [ebx + 0x4c], esi
jne 0x30080bdd
cmp dword [ebx + 0x50], esi
jne 0x30080bdd
cmp word [edi + 0x2a], si
jne 0x30080bdd
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x18]
cmp ecx, esi
je 0x3007fc1d
call fcn.30021c88
test al, al
jne 0x30080bdd
mov ecx, ebx
call fcn.30079a73
cmp eax, 8
mov edi, dword [ebp + 0x70]
jl 0x3007fc8c
push edi
call fcn.3003462c
fld qword [0x30231680]
fucompp
pop ecx
fnstsw ax
test ah, 0x44
jp 0x3007fc5c
push edi
call fcn.30034642
fld qword [0x30231680]
fucompp
pop ecx
fnstsw ax
test ah, 0x44
jnp 0x30080bdd
push edi
call fcn.3003465a
fld qword [0x30231680]
fucompp
pop ecx
fnstsw ax
test ah, 0x44
jp 0x3007fc8c
push edi
call fcn.30034672
fld qword [0x30231680]
fucompp
pop ecx
fnstsw ax
test ah, 0x44
jnp 0x30080bdd
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x78]
cmp ecx, 9
jg 0x300805cd
je 0x30080586
sub ecx, esi
je 0x300804a9
sub ecx, 4
je 0x3007fd4f
dec ecx
dec ecx
je 0x300805ed
dec ecx
jne 0x30080bdd
push edi
push esi
push eax
push dword [ebp + 0x5c]
lea ecx, [ebp - 0xb78]
call fcn.3001e204
mov eax, dword [ebx + 0x18]
mov cl, byte [eax + 0x7e]
cmp cl, 0x2e
je 0x3007fce8
cmp cl, 0x54
mov dword [ebp - 0xf0], esi
jne 0x3007fcf2
mov dword [ebp - 0xf0], 1
cmp byte [eax + 0x7e], 0x54
mov esi, dword [ebp + 0x70]
setne al
dec al
push 5
pop ecx
add esi, 0x1c
lea edi, [ebp - 0xb28]
and eax, 2
mov byte [ebp - 0xe8], al
mov eax, dword [ebx + 4]
rep movsd dword es:[edi], dword [esi]
movzx eax, word [eax + 0x5e]
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xb14], eax
mov eax, dword [ebp + 0x74]
add ebx, 0x7c
push ebx
lea ecx, [ebp - 0xb78]
mov dword [ebp - 0xe4], eax
call fcn.3007a9b9
jmp 0x30080559
call fcn.30084a78
jmp 0x30080bdd
lea ecx, [ebp + 0x1c]
call fcn.30001e15
mov ecx, dword [ebp + 0x5c]
mov eax, dword [ecx + 0x210]
cmp eax, esi
jne 0x3007fd69
call fcn.3008756b
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x18]
push dword [eax + 0x74]
lea ecx, [ebp + 0x1c]
push 0
push dword [eax + 0x70]
call fcn.30084471
mov eax, dword [ebx + 0x18]
xor ecx, ecx
cmp byte [eax + 0x7e], 0x21
lea eax, [ebp - 0xb4]
sete cl
push eax
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp + 0x1c]
call fcn.3008862e
push 7
pop ecx
lea eax, [ebp - 0x6c]
push eax
push dword [ebp + 0x70]
lea esi, [ebp - 0xb4]
lea edi, [ebp - 0x6c]
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.3008862e
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov cl, byte [ecx + eax]
movzx ecx, cl
add esp, 0xc
inc dword [ebp + 0x20]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x20]
mov al, byte [ecx + eax]
inc dword [ebp + 0x20]
movzx eax, al
cmp eax, 0x20
mov dword [ebp - 0x38], eax
jg 0x30080571
cmp dword [ebp - 0x1c], 0x20
jg 0x30080571
mov eax, dword [ebx + 4]
xor edi, edi
cmp word [eax + 0x5a], di
mov dword [ebp + 0x14], edi
je 0x3007fe13
lea eax, [ebx + 0x50]
push eax
mov ecx, ebx
call fcn.3007a070
push eax
call fcn.300781f5
pop ecx
pop ecx
mov dword [ebp + 0x14], eax
mov ecx, ebx
mov dword [ebp + 0x10], edi
mov dword [ebp + 0x64], edi
call fcn.3007a070
test eax, eax
je 0x3007fe31
call fcn.3007a070
mov eax, dword [eax + 0x3e4]
jmp 0x3007fe33
xor eax, eax
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.300350a4
mov eax, dword [ebx + 4]
mov edx, dword [eax + 0x1c]
pop ecx
xor esi, esi
cmp edx, edi
pop ecx
mov dword [ebp - 0x18], edi
mov dword [ebp + 0x44], edi
mov dword [ebp + 0x4c], edi
je 0x3007fe82
cmp dword [edx + 0xc], edi
jbe 0x3007fe82
mov ecx, ebx
call fcn.3007a070
cmp dword [eax + 0x108], edi
jne 0x3007fe82
mov eax, dword [edx + 4]
mov dword [ebp + 0x4c], eax
mov eax, dword [edx + 8]
mov dword [ebp + 0x44], eax
lea eax, [ebp + 0x10]
push eax
push edi
push edx
call fcn.3007b885
mov dword [ebp - 0x18], eax
push ebx
mov dword [ebp + 0x40], 0x400
mov dword [ebp + 0x50], 0x44800000
mov dword [ebp + 0x54], edi
mov dword [ebp + 0x60], edi
mov dword [ebp - 0x10], edi
mov dword [ebp + 0x18], edi
mov dword [ebp - 0x14], edi
call fcn.30060267
test al, al
pop ecx
je 0x3007fed7
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax + 0x68]
mov eax, dword [ecx + 0x210]
cmp eax, edi
jne 0x3007febf
call fcn.3008756b
cmp eax, 5
jle 0x3007fed7
mov ecx, ebx
call fcn.3007a070
cmp dword [eax + 0x108], edi
jne 0x3007fed7
mov dl, 1
jmp 0x3007fed9
xor dl, dl
mov eax, dword [ebx + 4]
cmp word [eax + 0x5a], di
jne 0x3007ffab
test dl, dl
je 0x3007ffab
mov eax, ebx
mov ecx, dword [eax + 4]
cmp dword [ecx + 4], edi
je 0x3007fefe
test byte [eax + 0x55], 2
jne 0x3007ff0d
cmp word [ecx + 0x5a], di
jne 0x3007ff0d
mov eax, dword [eax + 8]
cmp eax, edi
jne 0x3007fef0
jmp 0x3007ff0f
xor dl, dl
test dl, dl
je 0x3007ffab
mov ecx, ebx
call fcn.30079a73
push eax
lea eax, [ebp + 0x77]
push eax
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.3008862e
add esp, 0x14
cmp dword [ebp - 0x44], edi
jle 0x3007ffab
cmp dword [ebp - 0x40], edi
jle 0x3007ffab
cmp byte [ebp + 0x77], 0
jne 0x3007ffab
push 0x6c
call fcn.300367dc
mov edi, eax
test edi, edi
pop ecx
je 0x3007ff8a
push dword [ebp + 0x70]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x18]
lea ecx, [ebp - 0xb4]
push ecx
lea ecx, [ebp - 0x6c]
push ecx
push eax
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x68]
push ebx
push dword [eax + 0xd0]
call fcn.300606cb
pop ecx
push eax
mov ecx, edi
call fcn.3008862e
mov dword [ebp + 0x60], eax
jmp 0x3007ff8e
and dword [ebp + 0x60], 0
mov ecx, dword [ebp + 0x60]
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 0x70]
cmp byte [eax + 0x30], 0
seta al
push eax
push 0
push 0
call fcn.3008862e
xor edi, edi
mov eax, dword [ebp + 0x5c]
mov eax, dword [eax + 0xd0]
cmp eax, edi
je 0x3007ffc7
cmp byte [eax + 0xa91], 0
jne 0x30080571
xor edi, edi
cmp dword [ebp + 0x64], edi
jne 0x300801f8
lea ecx, [ebp + 0x1c]
call fcn.300847f5
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x20]
mov al, byte [ecx + eax]
inc dword [ebp + 0x20]
movzx eax, al
cmp eax, edi
mov dword [ebp + 0x64], eax
je 0x3008048e
mov dword [ebp + 0x58], eax
and dword [ebp + 0x58], 8
je 0x3008004b
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x20], 2
add eax, ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
push ecx
mov ecx, dword [ebp + 0x5c]
call fcn.30084dbf
mov esi, eax
cmp esi, edi
je 0x30080025
cmp dword [esi + 0x78], 3
je 0x30080025
xor esi, esi
cmp esi, edi
mov dword [ebp + 0x40], 0x400
mov dword [ebp + 0x50], 0x44800000
je 0x3008004b
cmp byte [esi + 0x7e], 0x4b
jne 0x3008004b
mov dword [ebp + 0x40], 0x5000
mov dword [ebp + 0x50], 0x46a00000
mov edx, dword [ebp + 0x64]
and edx, 4
jne 0x30080066
mov ecx, ebx
call fcn.3007a070
cmp dword [eax + 0x108], edi
je 0x300800f7
cmp edx, edi
je 0x300800d1
push dword [ebp - 0x3c]
lea eax, [ebp - 0x50]
push eax
lea ecx, [ebp + 0x1c]
call fcn.3008862e
cmp dword [ebp + 0x60], edi
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
je 0x300800d1
mov ecx, dword [ebp + 0x70]
add ecx, 0x1c
cmp dword [ecx], edi
mov dword [ebp + 0x78], eax
je 0x3008009f
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.3008862e
mov eax, dword [eax]
mov dword [ebp + 0x78], eax
cmp byte [ebp + 0x7b], 0xff
je 0x300800d1
movzx eax, byte [ebp + 0x7b]
movzx ecx, byte [ebp + 0x78]
inc eax
imul ecx, eax
sar ecx, 8
mov byte [ebp + 0x78], cl
movzx ecx, byte [ebp + 0x79]
imul ecx, eax
sar ecx, 8
mov byte [ebp + 0x79], cl
movzx ecx, byte [ebp + 0x7a]
imul ecx, eax
sar ecx, 8
mov byte [ebp + 0x7a], cl
mov eax, dword [ebx + 4]
cmp word [eax + 0x5a], di
jne 0x300800f7
lea eax, [ebp + 0x10]
push eax
push dword [ebp + 0x70]
lea eax, [ebp - 0x34]
push eax
mov ecx, ebx
call fcn.3007b885
cmp eax, edi
mov dword [ebp + 0x14], eax
je 0x30080bdd
test byte [ebp + 0x64], 1
je 0x30080119
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x20], 2
add eax, ecx
xor ecx, ecx
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx ecx, cx
or ecx, eax
mov dword [ebp + 4], ecx
test byte [ebp + 0x64], 2
je 0x3008013b
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x20], 2
add eax, ecx
xor ecx, ecx
mov ch, byte [eax + 1]
movzx eax, byte [eax]
movsx ecx, cx
or ecx, eax
mov dword [ebp + 8], ecx
cmp dword [ebp + 0x58], edi
je 0x300801db
mov ecx, ebx
call fcn.3007a070
test eax, eax
je 0x300801aa
call fcn.3007a070
cmp dword [eax + 0x3e4], edi
je 0x300801aa
call fcn.3007a070
mov ecx, dword [eax + 0x3e4]
call fcn.3009517f
test al, al
je 0x300801aa
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x20], 2
add eax, ecx
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov dword [ebp + 0xc], 1
movzx eax, cx
mov dword [ebp + 0x48], eax
fild dword [ebp + 0x48]
fld1
fdiv dword [ebp + 0x50]
fmulp st(1)
fst dword [ebp]
fst dword [ebp - 0xc]
fmul dword [ebp + 0x50]
call fcn.3008862e
jmp 0x300801d8
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
add dword [ebp + 0x20], 2
add eax, ecx
xor ecx, ecx
mov ch, byte [eax + 1]
xor edi, edi
mov cl, byte [eax]
mov eax, 0x10000
cdq
idiv dword [ebp + 0x40]
mov dword [ebp + 0xc], edi
imul eax, ecx
mov dword [ebp], eax
mov dword [ebp - 0xc], eax
imul eax, dword [ebp + 0x40]
mov dword [ebp + 0x54], eax
mov ecx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov al, byte [ecx + eax]
inc dword [ebp + 0x20]
movzx eax, al
lea ecx, [ebp + 0x1c]
mov dword [ebp + 0x64], eax
call fcn.300847ec
cmp dword [ebp + 0x64], edi
jle 0x3008048e
push dword [ebp - 0x1c]
lea ecx, [ebp + 0x1c]
call fcn.3008862e
push dword [ebp - 0x38]
lea ecx, [ebp + 0x1c]
mov edi, eax
call fcn.3008862e
test esi, esi
mov dword [ebp + 0x48], eax
je 0x30080480
mov ax, word [esi + 0x36]
test ax, ax
je 0x3008023a
movzx eax, ax
cmp edi, eax
jl 0x3008023a
and dword [ebp + 0x48], 0
jmp 0x30080480
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.3008862e
add esp, 0xc
cmp dword [ebp + 0x4c], 0
jbe 0x300802ab
mov eax, dword [ebp + 0x44]
dec dword [ebp + 0x4c]
mov al, byte [eax]
inc dword [ebp + 0x44]
test al, al
je 0x300802ab
lea eax, [ebp - 0x7c]
push eax
push dword [ebp - 0x20]
mov ecx, ebx
push edi
push esi
call fcn.3008862e
test al, al
je 0x300802ab
lea eax, [ebp - 0x7c]
push eax
push 0xffffffffffffffe0
call fcn.30035ad3
pop ecx
pop ecx
push 0
lea eax, [ebx + 0x4c]
push eax
mov ecx, ebx
call fcn.3007a070
push eax
push dword [ebp - 0x18]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.3008862e
add esp, 0x18
mov eax, dword [ebp + 0x60]
test eax, eax
je 0x300803a2
fild dword [ebp + 0x54]
fmul dword [eax + 0x4c]
fcomp dword [0x30236638]
fnstsw ax
test ah, 0x41
jp 0x300803a2
cmp dword [ebp + 0x18], esi
je 0x30080350
and dword [ebp + 0x58], 0
test byte [esi + 0x38], 8
movzx eax, word [esi + 0x36]
mov ecx, dword [esi + 0x70]
je 0x3008030e
lea eax, [ecx + eax*4]
cmp eax, ecx
jb 0x30080328
mov edx, dword [esi + 0x74]
add edx, ecx
cmp eax, edx
ja 0x30080328
movzx edx, byte [eax + 1]
xor ecx, ecx
mov ch, byte [eax + 3]
mov cl, byte [eax + 2]
movzx eax, byte [eax]
shl ecx, 8
or ecx, edx
shl ecx, 8
or ecx, eax
jmp 0x30080325
lea eax, [ecx + eax*2]
cmp eax, ecx
jb 0x30080328
mov edx, dword [esi + 0x74]
add edx, ecx
cmp eax, edx
ja 0x30080328
xor ecx, ecx
mov ch, byte [eax + 1]
mov cl, byte [eax]
mov dword [ebp + 0x58], ecx
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + 0x68]
push dword [eax + 0xd0]
call fcn.300606cb
push esi
call fcn.3008862e
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x70]
add eax, dword [ebp + 0x58]
pop ecx
pop ecx
mov dword [ebp + 0x18], esi
mov dword [ebp - 0x14], eax
fild dword [ebp + 4]
mov eax, dword [ebp - 0x14]
mov ecx, dword [esi + 0x70]
lea eax, [eax + edi*2]
cmp eax, ecx
fstp dword [ebp - 0x28]
fild dword [ebp + 8]
fstp dword [ebp - 0x24]
jb 0x30080571
mov edx, dword [esi + 0x74]
add edx, ecx
cmp eax, edx
ja 0x30080571
movzx eax, word [eax]
push 0
lea ecx, [ebp - 0x28]
push ecx
push dword [ebp + 0x54]
lea ecx, [ebp + 0x78]
push ecx
mov ecx, dword [ebp + 0x60]
push edi
push eax
push dword [ebp - 0x10]
push dword [ebx + 0x50]
push dword [ebp + 0x18]
call fcn.3006174a
jmp 0x30080480
xor edx, edx
test byte [esi + 0x38], 8
je 0x300803d6
mov ecx, dword [esi + 0x70]
lea eax, [ecx + edi*4]
cmp eax, ecx
jb 0x300803f8
mov edi, dword [esi + 0x74]
add edi, ecx
cmp eax, edi
ja 0x300803f8
mov dh, byte [eax + 3]
movzx ecx, byte [eax + 1]
mov dl, byte [eax + 2]
movzx eax, byte [eax]
shl edx, 8
or edx, ecx
shl edx, 8
or edx, eax
jmp 0x300803f0
mov eax, dword [esi + 0x70]
lea ecx, [eax + edi*2]
cmp ecx, eax
jb 0x300803f8
mov edi, dword [esi + 0x74]
add edi, eax
cmp ecx, edi
ja 0x300803f8
xor edx, edx
mov dh, byte [ecx + 1]
mov dl, byte [ecx]
test edx, edx
jl 0x30080571
cmp edx, dword [esi + 0x74]
jg 0x30080571
lea eax, [ebp - 0x98]
push eax
push edx
push esi
push dword [ebp + 0x5c]
lea ecx, [ebp - 0xb78]
call fcn.3001e204
mov edx, dword [ebp - 0xb00]
mov edi, dword [ebp + 0x14]
push dword [ebp + 0x7c]
xor eax, eax
xor ecx, ecx
inc eax
mov dword [ebp - 0xbc], eax
mov dword [ebp - 0xb8], ebx
mov dword [edx], ecx
mov edx, dword [ebp - 0xafc]
mov dword [edx], ecx
mov edx, dword [ebp - 0xafc]
mov word [edx + 4], cx
mov edx, dword [ebp - 0xb00]
mov dword [edx + 4], edi
mov dword [ebp - 0xb04], eax
lea eax, [ebx + 0x7c]
push eax
push ecx
lea ecx, [ebp - 0xb78]
call fcn.3007a4d8
cmp byte [ebp - 0xb58], 0
lea ecx, [ebp - 0xb78]
jne 0x3008056c
call fcn.30084a78
mov eax, dword [ebp + 0x48]
add dword [ebp + 4], eax
dec dword [ebp + 0x64]
jmp 0x3007ffa9
cmp dword [ebp + 0x60], edi
je 0x3008049c
mov ecx, dword [ebp + 0x60]
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp + 0x1c]
call fcn.300847f5
jmp 0x30080bdd
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x2c]
cmp ecx, esi
je 0x300804c8
cmp dword [ebp + 0x7c], esi
push dword [ebp + 0x74]
setne al
push eax
push edi
call fcn.3007dfee
jmp 0x30080bdd
push edi
push esi
push eax
push dword [ebp + 0x5c]
lea ecx, [ebp - 0xb78]
call fcn.3001e204
mov eax, dword [ebx + 0x18]
mov cl, byte [eax + 0x7e]
cmp cl, 0x20
je 0x300804ef
cmp cl, 0x53
mov dword [ebp - 0xf0], esi
jne 0x300804f9
mov dword [ebp - 0xf0], 1
cmp byte [eax + 0x7e], 0x53
setne al
dec al
and eax, 2
mov byte [ebp - 0xe8], al
mov eax, dword [ebx + 8]
cmp eax, esi
je 0x30080525
mov eax, dword [eax + 4]
cmp byte [eax + 0x60], 0
setne al
movzx eax, al
mov dword [ebp - 0xec], eax
mov esi, dword [ebp + 0x70]
mov eax, dword [ebp + 0x74]
push 5
pop ecx
push dword [ebp + 0x7c]
add esi, 0x1c
lea edi, [ebp - 0xb28]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xb8], ebx
add ebx, 0x7c
push ebx
push 1
lea ecx, [ebp - 0xb78]
mov dword [ebp - 0xe4], eax
call fcn.3007a4d8
cmp byte [ebp - 0xb58], 0
lea ecx, [ebp - 0xb78]
je 0x3007fd45
call fcn.30084a78
mov eax, dword [ebp + 0x5c]
mov ecx, dword [eax + 0xd0]
push 1
call fcn.300953a3
jmp 0x30080bdd
mov eax, dword [ebx + 4]
mov edi, dword [eax + 0x18]
mov esi, dword [ebp + 0x70]
push 5
pop ecx
add esi, 0x1c
add edi, 0x2ec
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 4]
push dword [eax + 0x18]
call fcn.300cff30
test al, al
pop ecx
je 0x30080bdd
mov ecx, dword [ebp + 0x70]
xor eax, eax
push eax
push eax
add ecx, 0x30
push ecx
push eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x18]
call fcn.300287b3
jmp 0x30080bdd
cmp ecx, 0xa
je 0x300808cd
cmp ecx, 0xc
je 0x30080600
cmp ecx, 0x60
jle 0x30080bdd
cmp ecx, 0x62
jg 0x30080bdd
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x2c]
cmp ecx, esi
je 0x30080bdd
jmp 0x300804b3
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, esi
je 0x30080bdd
cmp dword [eax + 0x34], esi
je 0x30080bdd
push 0x50
call fcn.300367dc
cmp eax, esi
pop ecx
mov dword [ebp + 0x74], eax
je 0x30080638
mov ecx, ebx
call fcn.3007a07e
mov ecx, dword [ebp + 0x74]
push eax
call fcn.3005153a
mov esi, eax
jmp 0x3008063a
xor esi, esi
test esi, esi
mov dword [ebp + 0x7c], esi
je 0x30080bdd
mov eax, dword [ebx + 4]
mov dword [ebx + 0x50], esi
cmp word [eax + 0x5a], 0
mov ecx, esi
je 0x30080660
push 5
call fcn.3005160b
jmp 0x300808b1
push 1
call fcn.3005160b
mov ecx, ebx
call fcn.3007a07e
mov eax, dword [eax + 0x38]
push edi
mov dword [ebp + 0x78], eax
call fcn.300354f3
test eax, eax
pop ecx
je 0x300806e1
fild dword [ebp + 0x78]
sub esp, 0x10
fmul qword [0x30231fa8]
fstp qword [ebp - 0x28]
fld qword [0x30235090]
fstp qword [esp + 8]
fld qword [ebp - 0x28]
fstp qword [esp]
push edi
call fcn.3003462c
push ecx
fstp qword [esp]
call fcn.3008862e
add esp, 0x18
test eax, eax
je 0x300806e1
fld qword [0x30235090]
sub esp, 0x10
fstp qword [esp + 8]
fld qword [ebp - 0x28]
fstp qword [esp]
push edi
call fcn.30034672
push ecx
fstp qword [esp]
call fcn.3008862e
add esp, 0x18
test eax, eax
mov byte [ebp + 0x77], 1
jne 0x300806e5
mov byte [ebp + 0x77], 0
mov ecx, dword [ebp + 0x78]
cmp ecx, 1
jle 0x30080725
mov eax, dword [ebx + 0x18]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
dec eax
je 0x30080705
dec eax
jne 0x30080725
cmp byte [ebp + 0x77], 0
je 0x300807f4
mov eax, ecx
cdq
sub eax, edx
lea edx, [ecx - 1]
mov ecx, dword [edi + 0x10]
sar eax, 1
add ecx, eax
not edx
and ecx, edx
mov dword [edi + 0x10], ecx
mov ecx, dword [edi + 0x14]
add ecx, eax
and ecx, edx
mov dword [edi + 0x14], ecx
cmp byte [ebp + 0x77], 0
je 0x300807f4
mov ecx, ebx
call fcn.3007a070
test eax, eax
je 0x30080747
call fcn.3007a070
mov eax, dword [eax + 0x3e4]
jmp 0x30080749
xor eax, eax
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.300350a4
mov eax, dword [edi + 0x10]
cdq
idiv dword [ebp + 0x78]
pop ecx
pop ecx
mov ecx, ebx
shl eax, 0x10
mov dword [ebp + 4], eax
mov eax, dword [edi + 0x14]
cdq
idiv dword [ebp + 0x78]
shl eax, 0x10
mov dword [ebp + 8], eax
call fcn.3007a070
test eax, eax
je 0x30080787
call fcn.3007a070
mov eax, dword [eax + 0x3e4]
jmp 0x30080789
xor eax, eax
push eax
mov eax, dword [esi + 0x4c]
add eax, 0x24
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.3008862e
mov eax, dword [esi + 0x4c]
add esp, 0xc
cmp dword [eax + 0x3c], 1
jne 0x300807b0
add eax, 0x24
push eax
call fcn.3008862e
pop ecx
mov eax, dword [esi + 0x4c]
mov ecx, ebx
mov dword [eax + 0x3c], 2
call fcn.3007a070
cmp dword [eax + 0x108], 0
je 0x30080851
mov eax, dword [ebp + 0x7c]
mov edi, dword [eax + 0x4c]
push 7
add edi, 8
pop ecx
lea esi, [ebp - 0xc]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax + 0x4c]
cmp dword [eax + 0x20], 1
jne 0x30080851
add eax, 8
push eax
call fcn.3008862e
pop ecx
jmp 0x30080851
lea eax, [ebp - 0xc]
push eax
mov eax, 0x140000
push eax
push eax
call fcn.300351d1
add esp, 0xc
mov ecx, ebx
call fcn.3007a070
cmp dword [eax + 0x108], 0
je 0x3008082d
mov eax, dword [ebp + 0x7c]
mov edi, dword [eax + 0x4c]
push 7
add edi, 8
pop ecx
lea esi, [ebp - 0xc]
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 0x70]
mov esi, eax
mov ecx, ebx
call fcn.3007a070
push dword [eax + 0x3e4]
mov eax, dword [esi + 0x4c]
add eax, 0x24
push eax
push dword [ebp + 0x78]
lea eax, [ebp - 0xc]
push eax
push edi
call fcn.30078476
add esp, 0x14
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov ecx, dword [ecx]
mov eax, dword [ebp + 0x7c]
mov edx, dword [eax + 0x4c]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 0x4c]
mov word [ecx], 0x41
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx]
cmp byte [ecx + 0x1c], 0
jne 0x3008087a
mov eax, dword [eax + 0x4c]
or byte [eax], 2
mov ecx, dword [ebp + 0x7c]
mov edi, dword [ecx + 0x4c]
mov eax, dword [ebp + 0x70]
add eax, 0x1c
push 5
pop ecx
mov esi, eax
add edi, 0x40
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.3003b064
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx]
mov ecx, dword [ecx]
mov edi, dword [ebp + 0x70]
test eax, eax
setne al
or al, byte [ecx + 0x20]
mov ecx, dword [ebp + 0x7c]
mov byte [ecx + 0x2c], al
mov esi, ecx
mov ecx, esi
call fcn.3008862e
push 0
lea eax, [ebx + 0x4c]
push eax
mov ecx, ebx
call fcn.3007a070
push eax
push esi
push edi
jmp 0x30080bce
cmp dword [ebx + 0x50], esi
jne 0x30080bdd
mov edx, dword [ebx + 4]
cmp dword [edx + 8], esi
je 0x30080bdd
mov cl, byte [eax + 0xc]
cmp cl, 2
jb 0x30080a30
cmp cl, 5
ja 0x30080a30
cmp dword [edx + 0x54], esi
je 0x30080a30
mov di, word [eax + 8]
cmp di, si
jbe 0x30080a30
mov ecx, dword [eax]
cmp ecx, esi
je 0x30080a30
cmp dword [eax + 4], esi
je 0x30080a30
mov ax, word [eax + 0xa]
cmp ax, 0xffff
jne 0x30080930
movzx eax, word [edx + 0x5e]
jmp 0x30080933
movzx eax, ax
movzx edi, di
cdq
idiv edi
cmp edx, esi
mov dword [ebp + 0x74], edx
jl 0x30080a30
lea eax, [ecx + edx*4]
cmp dword [eax], esi
jne 0x30080956
dec edx
sub eax, 4
cmp edx, esi
mov dword [ebp + 0x74], edx
jge 0x30080947
cmp edx, esi
jl 0x30080a30
mov eax, dword [ebx + 4]
movzx eax, word [eax + 0x58]
cmp edx, eax
je 0x30080a30
mov esi, edx
mov ecx, dword [ebx + 4]
movzx eax, word [ecx + 0x58]
lea edi, [esi - 1]
cmp eax, edi
jl 0x30080982
cmp dword [ebp + 0x74], eax
jg 0x300809b4
mov eax, dword [ebx + 0x18]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov edx, dword [edx + esi*4]
test edx, edx
mov eax, dword [eax + esi*4]
mov dword [ebp + 0x7c], eax
je 0x300809ac
test eax, eax
je 0x300809ac
push dword [ebp + 0x7c]
mov ecx, dword [ecx + 0x54]
mov eax, dword [ecx]
push edx
push ebx
call dword [eax + 0x10]
test al, al
jne 0x300809ec
mov esi, edi
test esi, esi
jge 0x3008096f
jmp 0x300809ec
mov eax, dword [ebx + 4]
movzx ecx, word [eax + 0x58]
mov eax, dword [ebx + 0x18]
movzx edx, word [eax + 8]
lea esi, [ecx + 1]
cmp esi, edx
jge 0x300809e4
mov eax, dword [eax]
lea eax, [eax + esi*4]
cmp dword [eax], 0
jne 0x300809e2
mov edi, dword [ebx + 0x18]
movzx edi, word [edi + 8]
inc esi
add eax, 4
cmp esi, edi
jl 0x300809ce
cmp esi, edx
jne 0x300809ec
or esi, 0xffffffff
mov dword [ebp + 0x74], ecx
test esi, esi
jl 0x30080a30
jmp 0x30080a17
mov eax, dword [ebx + 0x18]
mov ecx, dword [eax]
mov edx, dword [ecx + esi*4]
test edx, edx
mov eax, dword [eax + 4]
mov eax, dword [eax + esi*4]
je 0x30080a16
test eax, eax
je 0x30080a16
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x54]
mov edi, dword [ecx]
push eax
push edx
push ebx
call dword [edi + 0xc]
inc esi
cmp esi, dword [ebp + 0x74]
jle 0x300809f2
push dword [ebp + 0x74]
mov ecx, ebx
call fcn.3007ee97
mov eax, dword [ebx + 4]
mov eax, dword [eax + 8]
mov byte [eax + 0x28], 0
mov eax, dword [ebx + 4]
mov edi, dword [eax + 8]
cmp byte [edi + 0x29], 0
mov dword [ebp + 0x7c], edi
jne 0x30080a4e
cmp dword [edi], 0
jne 0x30080a4e
cmp dword [edi + 0xc], 6
jne 0x30080bdd
cmp byte [edi + 0x28], 1
je 0x30080bdd
push 0x50
call fcn.300367dc
mov esi, eax
test esi, esi
pop ecx
je 0x30080a79
mov ecx, ebx
call fcn.3007a07e
push eax
mov ecx, esi
call fcn.3005153a
mov esi, eax
jmp 0x30080a7b
xor esi, esi
test esi, esi
mov dword [ebp + 0x74], esi
je 0x30080bdd
mov eax, dword [ebx + 4]
mov dword [ebx + 0x50], esi
cmp word [eax + 0x5a], 0
mov ecx, esi
je 0x30080aa1
push 5
call fcn.3005160b
jmp 0x30080bb5
push 1
call fcn.3005160b
mov eax, dword [edi + 0x10]
and dword [ebp - 0x28], 0
and dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], eax
mov eax, dword [edi + 0x14]
push 1
mov ecx, esi
mov dword [ebp - 0x24], eax
call fcn.3005160b
mov ecx, ebx
call fcn.3007a070
test eax, eax
je 0x30080add
call fcn.3007a070
mov eax, dword [eax + 0x3e4]
jmp 0x30080adf
xor eax, eax
mov esi, dword [ebp + 0x74]
push eax
mov eax, dword [esi + 0x4c]
add eax, 8
push eax
mov eax, dword [ebx + 0x18]
add eax, 0x4c
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.3008862e
mov esi, dword [esi + 0x4c]
add esp, 0x10
push 7
pop ecx
add esi, 8
lea edi, [ebp - 0x98]
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
call fcn.3007a07e
mov edx, dword [eax + 0x38]
mov ecx, ebx
call fcn.3007a070
push dword [eax + 0x3e4]
mov esi, dword [ebp + 0x74]
mov eax, dword [esi + 0x4c]
add eax, 0x24
push eax
push edx
lea eax, [ebp - 0x98]
push eax
push dword [ebp + 0x70]
call fcn.30078476
mov eax, dword [esi + 0x4c]
mov ecx, dword [ebp + 0x7c]
mov dword [eax + 4], ecx
mov eax, dword [esi + 0x4c]
mov word [eax], 0x41
mov eax, dword [ebx + 0x18]
add esp, 0x14
test byte [eax + 0xd], 1
jne 0x30080b64
mov eax, esi
mov eax, dword [eax + 0x4c]
or byte [eax], 2
mov ecx, dword [ebp + 0x74]
mov edi, dword [ecx + 0x4c]
mov eax, dword [ebp + 0x70]
add eax, 0x1c
push 5
pop ecx
mov esi, eax
add edi, 0x40
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
call fcn.3003b064
test eax, eax
mov eax, dword [ebp + 0x7c]
setne cl
or cl, byte [eax + 0x20]
mov eax, dword [ebp + 0x74]
mov byte [eax + 0x2c], cl
mov eax, dword [eax + 0x4c]
cmp dword [eax + 0x3c], 1
jne 0x30080ba5
add eax, 0x24
push eax
call fcn.3008862e
pop ecx
mov eax, dword [ebp + 0x74]
mov eax, dword [eax + 0x4c]
mov esi, dword [ebp + 0x74]
mov dword [eax + 0x3c], 2
mov ecx, esi
call fcn.3008862e
push 0
lea eax, [ebx + 0x4c]
push eax
mov ecx, ebx
call fcn.3007a070
push eax
push esi
push dword [ebp + 0x70]
mov eax, dword [ebx + 0x18]
add eax, 0x4c
push eax
call fcn.3008862e
add esp, 0x18
pop edi
pop esi
pop ebx
add ebp, 0x68
leave
ret 0x10