Function at 0x548700
Capabilities:
Check http status code
Resolve function by parsing pe exports

Disassembly:
push ebp
lea ebp, [esp - 0x6c]
sub esp, 0x234
mov eax, dword [ebp + 0x78]
push ebx
push esi
xor esi, esi
mov dword [ebp + 0x1c], edx
mov edx, dword [ebp + 0x74]
mov ebx, ecx
push edi
mov edi, dword [ebp + 0x7c]
mov ecx, 0x4fc
cmp edi, ecx
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
cmovg edi, ecx
mov dword [ebp + 0x4c], esi
imul eax, edx, 0x190
mov dword [ebp + 0x24], esi
mov dword [ebp + 0x58], esi
mov dword [ebp + 0x44], esi
mov dword [ebp + 0x40], esi
mov dword [ebp + 0xc], esi
mov dword [ebp + 0x10], esi
mov dword [ebx + 0xfd0], esi
mov esi, dword [ebx + 0x80]
mov dword [ebp + 0x28], ebx
mov dword [ebp + 0x54], edi
cmp eax, esi
je 0x548785
imul eax, edx, 0xc8
cmp eax, esi
je 0x548785
imul eax, edx, 0x64
cmp eax, esi
je 0x548785
imul ecx, edx, 0x32
cmp ecx, esi
je 0x548785
imul eax, edx, 0x19
cmp eax, esi
je 0x548785
lea eax, [esi + esi*2]
cmp ecx, eax
jne 0x548789
test edi, edi
jg 0x54879a
or eax, 0xffffffff
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret
mov eax, dword [ebx + 4]
add eax, ebx
mov dword [ebp + 0x50], eax
mov eax, dword [ebx]
add eax, ebx
cmp dword [ebx + 0x5c], 0x803
mov dword [ebp + 0x5c], eax
jne 0x5487bb
mov dword [ebp + 0x48], 0
jmp 0x5487c1
mov eax, dword [ebx + 0x64]
mov dword [ebp + 0x48], eax
push edi
mov ecx, ebx
call fcn.00548690
mov edi, eax
mov ecx, dword [ebp + 0x54]
mov eax, esi
mov dword [ebx + 0x8c], edi
cdq
add esp, 4
idiv dword [ebp + 0x74]
mov esi, eax
mov dword [ebp + 0x18], esi
cmp ecx, 3
jl 0x54a146
lea eax, [esi + esi*2]
shl eax, 3
cmp edi, eax
jl 0x54a146
cmp esi, 0x32
jge 0x54881a
mov eax, esi
imul eax, ecx
cmp eax, 0x12c
jl 0x54a146
cmp edi, 0x960
jl 0x54a146
cmp dword [ebx + 0x84], 0
jne 0x548849
lea eax, [edi + esi*4]
lea ecx, [esi*8]
cdq
idiv ecx
mov ecx, dword [ebp + 0x54]
cmp eax, ecx
cmovl ecx, eax
mov edi, ecx
mov dword [ebp + 0x54], ecx
imul edi, esi
shl edi, 3
mov dword [ebx + 0x8c], edi
mov eax, esi
imul eax, ecx
mov ecx, 0x32
sub ecx, esi
shl eax, 3
mov dword [ebp + 0x3c], eax
mov eax, ecx
shl eax, 4
sub eax, ecx
lea edi, [edi + eax*4]
mov eax, dword [ebx + 0x6c]
mov dword [ebp + 0x60], edi
cmp eax, 0xbb9
jne 0x548879
mov esi, 0x7f
jmp 0x5488aa
cmp eax, 0xbba
jne 0x548884
xor esi, esi
jmp 0x5488aa
mov eax, dword [ebx + 0x7c]
test eax, eax
js 0x548896
imul esi, eax, 0x147
sar esi, 8
jmp 0x5488aa
cmp dword [ebx + 0x5c], 0x800
mov esi, 0x30
mov eax, 0x73
cmove esi, eax
mov eax, dword [ebx + 0x68]
lea edx, [ebx + 0x60]
cmp eax, 0xfffffc18
je 0x5488bf
cmp dword [edx], 2
mov dword [ebp + 0x64], edx
je 0x5488fd
mov eax, dword [edx]
mov dword [ebp + 0x64], edx
cmp eax, 2
jne 0x5488fa
mov eax, esi
mov dword [ebp + 0x38], 0x9c40
imul eax, esi
imul ecx, eax, 0xffffd8f0
mov eax, 0x7d00
sar ecx, 0xe
cmp dword [ebx + 0x98], 2
cmovne eax, dword [ebp + 0x38]
add ecx, eax
xor eax, eax
cmp edi, ecx
setg al
inc eax
jmp 0x5488fd
mov dword [ebp + 0x64], edx
mov dword [ebx + 0x98], eax
cmp dword [ebx + 0x5c], 0x803
jne 0x548920
mov dword [ebx + 0xb4], 0x3ea
mov ecx, 0x3ea
jmp 0x5489d8
mov ecx, dword [ebx + 0x78]
cmp ecx, 0xfffffc18
jne 0x5489d2
cmp dword [edx], 2
jne 0x548946
cmp dword [ebx + 0x68], 1
je 0x548946
mov eax, 0x5e36a0
mov edx, 0x5e369c
jmp 0x548950
mov eax, 0x5e3698
mov edx, 0x5e3694
mov edx, dword [edx]
sub edx, dword [eax]
imul edx, esi
imul edx, esi
sar edx, 0xe
add edx, dword [eax]
mov eax, dword [ebx + 0xb8]
cmp eax, 0x3ea
jne 0x548974
sub edx, 0xfa0
jmp 0x54897e
test eax, eax
jle 0x54897e
add edx, 0xfa0
xor ecx, ecx
cmp edi, edx
setge cl
cmp dword [ebx + 0x30], 0
lea ecx, [ecx*2 + 0x3e8]
mov dword [ebx + 0xb4], ecx
je 0x5489b6
mov eax, 0x80
sub eax, esi
sar eax, 4
cmp dword [ebx + 0x28], eax
jle 0x5489b6
mov dword [ebx + 0xb4], 0x3e8
mov ecx, 0x3e8
cmp dword [ebx + 0x34], 0
je 0x5489d8
cmp esi, 0x64
jle 0x5489d8
mov dword [ebx + 0xb4], 0x3e8
mov ecx, 0x3e8
jmp 0x5489d8
mov dword [ebx + 0xb4], ecx
cmp ecx, 0x3ea
je 0x548a09
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0x74], eax
jge 0x548a09
mov dword [ebx + 0xb4], 0x3ea
mov ecx, 0x3ea
cmp dword [ebx + 0x98], 1
jne 0x548a46
cmp dword [ebx + 0xbc], 2
jne 0x548a46
cmp dword [ebx + 0x40], 0
jne 0x548a46
cmp ecx, 0x3ea
je 0x548a46
cmp dword [ebx + 0xb8], 0x3ea
je 0x548a46
mov dword [ebx + 0x98], 2
mov eax, 1
jmp 0x548a48
xor eax, eax
mov dword [ebx + 0x40], eax
mov edi, dword [ebx + 0xb8]
test edi, edi
jle 0x548a72
mov eax, dword [ebx + 0xb4]
cmp eax, 0x3ea
je 0x548b95
cmp edi, 0x3ea
je 0x548ba1
xor ecx, ecx
cmp dword [ebx + 0xc8], 0
je 0x548a92
mov ecx, 1
mov dword [ebx + 0xc8], 0
mov dword [ebp + 0x58], ecx
mov dword [ebp + 0x40], ecx
test ecx, ecx
je 0x548af0
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 6
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
add ecx, dword [ebp + 0x74]
imul eax, dword [ebp + 0x54]
cdq
idiv ecx
mov ecx, eax
mov eax, 0x101
cmp ecx, 0x101
cmovg ecx, eax
cmp dword [ebx + 0x84], 0
mov dword [ebp + 0x44], ecx
je 0x548af0
mov eax, 0x51eb851f
imul dword [ebx + 0x8c]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
cmovge ecx, eax
mov dword [ebp + 0x44], ecx
cmp dword [ebx + 0xb4], 0x3ea
je 0x548b19
cmp edi, 0x3ea
jne 0x548b19
mov ecx, dword [ebp + 0x50]
lea edx, [ebp - 0x1c8]
call fcn.0054b9e0
mov dword [ebp + 0x24], 1
mov edx, dword [ebx + 0xb4]
mov edi, 0x44f
cmp edx, 0x3ea
je 0x548b3f
cmp dword [ebx + 0xcc], 0
jne 0x548b3f
cmp dword [ebx + 0x4c], 0
je 0x548d12
mov edi, 0x451
cmp edx, 0x3ea
je 0x548b7b
mov ecx, dword [ebx + 0x2c]
mov eax, 0x51eb851f
add ecx, 0x2d
imul ecx, dword [ebp + 0x60]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebx + 0x84], 0
mov dword [ebp + 0x60], eax
jne 0x548b7b
sub eax, 0x3e8
mov dword [ebp + 0x60], eax
mov eax, dword [ebp + 0x64]
cmp dword [eax], 2
jne 0x548bee
cmp dword [ebx + 0x68], 1
je 0x548bee
mov edx, 0x5e3800
mov eax, 0x5e3860
jmp 0x548bf8
cmp edi, 0x3ea
je 0x548a72
xor edx, edx
mov ecx, 1
cmp eax, 0x3ea
mov dword [ebp + 0x58], ecx
setne dl
mov dword [ebp + 0x40], edx
jne 0x548a74
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0x74], eax
jl 0x548be4
mov dword [ebx + 0xb4], edi
mov dword [ebp + 0xc], ecx
jmp 0x548a74
xor ecx, ecx
mov dword [ebp + 0x58], ecx
jmp 0x548a74
mov edx, 0x5e3820
mov eax, 0x5e3840
mov ecx, dword [edx]
sub ecx, dword [eax]
imul ecx, esi
mov dword [ebp + 0x68], eax
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax]
mov dword [ebp - 0x48], ecx
mov ecx, dword [edx + 4]
sub ecx, dword [eax + 4]
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax + 4]
mov dword [ebp - 0x44], ecx
mov ecx, dword [edx + 8]
sub ecx, dword [eax + 8]
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax + 8]
mov dword [ebp - 0x40], ecx
mov ecx, dword [edx + 0xc]
sub ecx, dword [eax + 0xc]
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax + 0xc]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [edx + 0x10]
sub ecx, dword [eax + 0x10]
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax + 0x10]
mov dword [ebp - 0x38], ecx
mov ecx, dword [edx + 0x14]
sub ecx, dword [eax + 0x14]
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax + 0x14]
mov dword [ebp - 0x34], ecx
mov ecx, dword [edx + 0x18]
sub ecx, dword [eax + 0x18]
imul ecx, esi
imul ecx, esi
sar ecx, 0xe
add ecx, dword [eax + 0x18]
mov dword [ebp - 0x30], ecx
mov ecx, dword [edx + 0x1c]
sub ecx, dword [eax + 0x1c]
imul ecx, esi
imul ecx, esi
mov esi, dword [ebx + 0xcc]
sar ecx, 0xe
add ecx, dword [eax + 0x1c]
mov dword [ebp - 0x2c], ecx
lea ecx, [ebp - 0x2c]
lea esp, [esp]
mov eax, dword [ecx - 4]
mov edx, dword [ecx]
test esi, esi
jne 0x548cc7
cmp dword [ebx + 0xc4], edi
jl 0x548cc5
sub eax, edx
jmp 0x548cc7
add eax, edx
cmp dword [ebp + 0x60], eax
jge 0x548cd8
dec edi
sub ecx, 8
cmp edi, 0x44d
jg 0x548cb0
mov edx, dword [ebx + 0xb4]
mov dword [ebx + 0xc4], edi
test esi, esi
jne 0x548d0d
cmp edx, 0x3ea
je 0x548d0d
cmp dword [ebx + 0x50], esi
jne 0x548d0d
mov eax, edi
cmp edi, 0x44f
mov edi, 0x44f
cmovg eax, edi
mov dword [ebx + 0xc4], eax
jmp 0x548d12
mov edi, 0x44f
mov ecx, dword [ebx + 0xc4]
mov eax, dword [ebx + 0x74]
cmp ecx, eax
jle 0x548d27
mov dword [ebx + 0xc4], eax
mov ecx, eax
mov eax, dword [ebx + 0x70]
mov dword [ebp + 0x60], eax
cmp eax, 0xfffffc18
je 0x548d3c
mov dword [ebx + 0xc4], eax
mov ecx, eax
mov eax, ecx
cmp edx, 0x3ea
je 0x548d60
cmp dword [ebp + 0x3c], 0x3a98
jge 0x548d60
cmp ecx, 0x44f
mov eax, edi
cmovl eax, ecx
mov dword [ebx + 0xc4], eax
mov edx, dword [ebx + 0x80]
mov ecx, eax
cmp edx, 0x5dc0
jg 0x548d86
cmp eax, 0x450
jle 0x548d86
mov dword [ebx + 0xc4], 0x450
mov ecx, 0x450
mov eax, ecx
cmp edx, 0x3e80
jg 0x548da7
cmp ecx, 0x44f
jle 0x548da7
mov dword [ebx + 0xc4], 0x44f
mov eax, 0x44f
mov ecx, eax
cmp edx, 0x2ee0
jg 0x548dc7
cmp eax, 0x44e
jle 0x548dc7
mov dword [ebx + 0xc4], 0x44e
mov ecx, 0x44e
mov edi, ecx
cmp edx, 0x1f40
jg 0x548de8
cmp ecx, 0x44d
jle 0x548de8
mov dword [ebx + 0xc4], 0x44d
mov edi, 0x44d
cmp dword [ebp + 0x18], 0x32
lea ecx, [edx*8]
mov edx, 0x2ee0
mov dword [ebp + 0x38], ecx
mov eax, 0x1f40
cmovg eax, edx
imul eax, dword [ebp + 0x74]
cdq
idiv ecx
cmp dword [ebp + 0x54], eax
jge 0x548e19
mov dword [ebx + 0xb4], 0x3ea
mov esi, dword [ebx + 0xb4]
mov ecx, edi
mov dword [ebp + 0x68], ecx
cmp esi, 0x3ea
jne 0x548e49
mov dword [ebp + 0x68], ecx
cmp edi, 0x44e
jne 0x548e49
mov ecx, 0x44f
mov dword [ebx + 0xc4], 0x44f
mov dword [ebp + 0x68], ecx
mov edi, dword [ebx + 0x80]
mov eax, 0x51eb851f
imul edi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x74]
cmp edx, eax
jle 0x5490bc
cmp esi, 0x3ea
je 0x548e7f
cmp ecx, 0x44f
jle 0x5490bc
mov eax, 0x51eb851f
xor ecx, ecx
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp + 0x74], eax
mov dword [ebp + 0x38], eax
mov eax, dword [ebp + 0x7c]
setg cl
add eax, 0xfffffffd
add ecx, 2
cdq
idiv ecx
mov edx, 0x4fc
mov dword [ebp + 0x24], ecx
cmp eax, 0x4fc
cmovg eax, edx
mov dword [ebp + 0x40], eax
imul eax, ecx
call fcn.00584260
mov eax, dword [ebx + 0x78]
xor edi, edi
mov edx, dword [ebx + 0x40]
mov ecx, esp
mov dword [ebp + 0x3c], eax
mov eax, dword [ebx + 0x68]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x68]
mov dword [ebx + 0x70], eax
mov eax, dword [ebx + 0x98]
mov dword [ebp + 0x4c], ecx
mov dword [ebp - 0x170], edi
mov dword [ebx + 0x78], esi
mov dword [ebx + 0x68], eax
mov dword [ebp + 0x34], edx
test edx, edx
je 0x548f00
mov dword [ebx + 0x68], 1
jmp 0x548f06
mov dword [ebx + 0xbc], eax
mov eax, dword [ebp + 0x40]
xor edx, edx
mov dword [ebp + 0x50], edx
mov edi, edi
cmp dword [ebp + 0xc], 0
mov dword [ebx + 0x40], 0
je 0x548f37
mov esi, dword [ebp + 0x74]
xor eax, eax
cmp esi, dword [ebp + 0x38]
setg al
inc eax
cmp edx, eax
mov eax, dword [ebp + 0x40]
jne 0x548f37
mov dword [ebx + 0x78], 0x3ea
mov esi, dword [ebx + 0x80]
push eax
mov eax, 0x51eb851f
imul esi
push ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, dword [ebp + 0x64]
mov ecx, dword [eax]
mov eax, 0x51eb851f
imul ecx, esi
imul ecx
mov ecx, dword [ebp + 0x1c]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, dword [ebp + 0x50]
lea edx, [ecx + eax*4]
mov ecx, ebx
call fcn.00548700
mov esi, eax
add esp, 0xc
mov dword [ebp + 0x28], esi
test esi, esi
js 0x54a121
cmp esi, 1
jl 0x54a121
mov ecx, dword [ebp + 0x4c]
mov dl, byte [ecx]
mov byte [ebp + 0x23], dl
test edi, edi
jne 0x548fbb
mov byte [ebp - 0x174], dl
mov edx, 0x1f40
call fcn.0054b960
mov ecx, dword [ebp + 0x4c]
mov dl, byte [ebp + 0x23]
mov dword [ebp - 0x4c], eax
jmp 0x548fcb
mov al, byte [ebp - 0x174]
xor al, dl
test al, 0xfc
jne 0x54a121
movzx eax, dl
and eax, 3
jne 0x548fd8
lea esi, [eax + 1]
jmp 0x548ffd
cmp eax, 3
je 0x548fe4
mov esi, 2
jmp 0x548ffd
cmp esi, 2
jl 0x54a121
movzx esi, byte [ecx + 1]
and esi, 0x3f
cmp esi, 1
jb 0x54a121
lea eax, [edi + esi]
imul eax, dword [ebp - 0x4c]
cmp eax, 0x3c0
jg 0x54a121
mov edx, dword [ebp + 0x28]
lea ecx, [ebp - 0xac]
push 0
lea ecx, [ecx + edi*2]
push ecx
mov ecx, dword [ebp + 0x4c]
lea eax, [ebp - 0x16c]
lea eax, [eax + edi*4]
push eax
lea eax, [ebp + 0x17]
push eax
push 0
call fcn.0054b350
add esp, 0x14
cmp eax, 1
jge 0x54904e
test eax, eax
js 0x54a121
mov edi, dword [ebp - 0x170]
jmp 0x54905c
mov edi, dword [ebp - 0x170]
add edi, esi
mov dword [ebp - 0x170], edi
mov edx, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x4c]
inc edx
mov eax, dword [ebp + 0x40]
add ecx, eax
mov dword [ebp + 0x50], edx
mov dword [ebp + 0x4c], ecx
cmp edx, dword [ebp + 0x24]
jl 0x548f10
push ecx
push dword [ebp + 0x7c]
mov ecx, dword [ebp + 0x2c]
push ecx
push edi
lea ecx, [ebp - 0x174]
call fcn.0054d110
add esp, 0x10
test eax, eax
js 0x54a121
mov ecx, dword [ebp + 0x3c]
mov dword [ebx + 0x78], ecx
mov ecx, dword [ebp + 0x60]
mov dword [ebx + 0x70], ecx
mov ecx, dword [ebp + 0x18]
mov dword [ebx + 0x68], ecx
mov ecx, dword [ebp + 0x34]
mov dword [ebx + 0x40], ecx
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret
cmp esi, 0x3e8
jne 0x5490db
cmp ecx, 0x44f
jle 0x5490db
mov dword [ebx + 0xb4], 0x3e9
mov esi, 0x3e9
cmp esi, 0x3e9
jne 0x5490f5
cmp ecx, 0x44f
jg 0x5490f5
mov dword [ebx + 0xb4], 0x3e8
mov eax, dword [ebx + 0x8c]
imul eax, edx
mov esi, dword [ebp + 0x54]
cdq
idiv dword [ebp + 0x38]
mov edx, esi
sub edx, dword [ebp + 0x44]
cmp edx, eax
mov dword [ebp + 0x38], edx
mov ecx, edx
cmovge ecx, eax
lea eax, [esi - 1]
dec ecx
mov dword [ebp + 0x60], ecx
mov ecx, dword [ebp + 0x2c]
inc ecx
mov edx, ecx
mov dword [ebp + 0x2c], ecx
push eax
lea ecx, [ebp - 0x28]
call fcn.0054cd60
mov edi, dword [ebp + 0x64]
add esp, 4
mov eax, dword [ebp + 0x74]
add eax, dword [ebp + 0x48]
mov esi, dword [edi]
imul eax, esi
shl eax, 2
call fcn.00584260
mov eax, esi
mov edx, esp
imul eax, dword [ebp + 0x48]
xor ecx, ecx
mov dword [ebp + 0x34], edx
test eax, eax
jle 0x549185
jmp 0x549160
mov eax, dword [ebx + 0x94]
sub eax, dword [ebp + 0x48]
imul eax, esi
add eax, ecx
fld dword [ebx + eax*4 + 0xd0]
fstp dword [edx + ecx*4]
mov esi, dword [edi]
inc ecx
mov eax, esi
imul eax, dword [ebp + 0x48]
cmp ecx, eax
jl 0x549160
cmp dword [ebx + 0xb4], 0x3ea
jne 0x5491f1
mov edi, 0x3c
mov ecx, edi
call fcn.00553040
mov edx, eax
mov ecx, 8
sub ecx, edx
je 0x5491b4
test ecx, ecx
jns 0x5491b2
neg ecx
rol edi, cl
jmp 0x5491b4
ror edi, cl
and edi, 0x7f
mov eax, 0x80
sub eax, edi
imul eax, edi
mov dword [ebp + 0x7c], eax
movzx eax, ax
imul ecx, eax, 0xb3
mov eax, dword [ebp + 0x7c]
sar eax, 0x10
imul eax, eax, 0xb3
sar ecx, 0x10
add eax, edi
mov edi, 0xf
sub edi, edx
add eax, ecx
shl edi, 7
add edi, eax
shl edi, 8
jmp 0x5491f7
mov eax, dword [ebp + 0x50]
mov edi, dword [eax + 8]
mov edx, dword [ebx + 0xa0]
sub edi, edx
movzx eax, di
imul ecx, eax, 0x3d7
sar edi, 0x10
imul eax, edi, 0x3d7
mov edi, dword [ebp + 0x74]
sar ecx, 0x10
add ecx, edx
add ecx, eax
cmp dword [ebx + 0x5c], 0x800
mov dword [ebx + 0xa0], ecx
jne 0x5492f8
mov eax, dword [ebp + 0x64]
push dword [ebx + 0x80]
sar ecx, 8
mov edx, dword [eax]
lea eax, [ebx + 0xa4]
push edx
imul edx, dword [ebp + 0x48]
push edi
push eax
mov eax, dword [ebp + 0x34]
lea eax, [eax + edx*4]
push eax
call fcn.0054d350
mov ecx, dword [ebp + 0x1c]
mov edx, eax
call fcn.00548390
add esp, 0x14
mov edx, dword [ebp + 0x64]
cmp dword [ebx + 0xb4], 0x3ea
je 0x54979a
mov eax, dword [edx]
imul eax, edi
add eax, eax
call fcn.00584260
mov eax, dword [ebp + 0x60]
imul eax, dword [ebp + 0x18]
mov ecx, dword [ebx + 0xb4]
mov dword [ebp + 0x1c], esp
shl eax, 3
mov dword [ebx + 0x24], eax
cmp ecx, 0x3e9
jne 0x5493ab
cdq
idiv dword [ebx + 0x98]
mov ecx, dword [ebx + 0x80]
imul esi, edi, 0x64
mov edx, eax
mov edi, dword [ebp + 0x68]
mov eax, dword [ebx + 0x84]
cmp edi, 0x450
jne 0x54934a
imul ecx, eax, 0x3e8
mov eax, 0x55555556
add ecx, edx
add ecx, ecx
cmp dword [ebx + 0x80], esi
jne 0x549333
add ecx, 0xfa0
imul ecx
mov ecx, dword [ebx + 0x80]
mov esi, edx
shr esi, 0x1f
add esi, edx
jmp 0x54936e
mov eax, esi
xor ecx, ecx
imul eax, edi
test eax, eax
jle 0x549262
mov ebx, dword [ebp + 0x34]
mov edx, dword [ebp + 0x64]
lea ecx, [ecx]
imul esi, dword [ebp + 0x48]
mov eax, dword [ebp + 0x1c]
fld dword [eax + ecx*4]
add esi, ecx
inc ecx
fstp dword [ebx + esi*4]
mov esi, dword [edx]
mov eax, esi
imul eax, edi
cmp ecx, eax
jl 0x549310
mov ebx, dword [ebp + 0x28]
jmp 0x549265
add ecx, 0x7d0
imul ecx
mov ecx, dword [ebx + 0x80]
mov esi, edx
shr esi, 0x1f
add esi, edx
jmp 0x54936e
cmp ecx, esi
jne 0x54935c
imul eax, eax, 0xbb8
add edx, 0x1f40
jmp 0x549365
add eax, 9
imul eax, eax, 0x3e8
add eax, edx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
lea eax, [ecx*8]
imul esi, dword [ebx + 0x98]
cdq
idiv dword [ebp + 0x74]
mov ecx, dword [ebx + 0x8c]
sub ecx, eax
mov eax, 0x66666667
shl ecx, 2
imul ecx
mov ecx, dword [ebx + 0xb4]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
cmovg esi, eax
mov dword [ebx + 0x24], esi
jmp 0x5493ae
mov edi, dword [ebp + 0x68]
imul eax, dword [ebp + 0x74], 0x3e8
mov esi, dword [ebp + 0x64]
cdq
idiv dword [ebx + 0x80]
mov dword [ebx + 0x20], eax
mov eax, dword [esi]
mov dword [ebx + 8], eax
mov eax, dword [ebx + 0x98]
mov dword [ebx + 0xc], eax
cmp edi, 0x44d
jne 0x5493e6
mov dword [ebx + 0x1c], 0x1f40
mov esi, 0x1f40
jmp 0x549408
cmp edi, 0x44e
jne 0x5493fc
mov dword [ebx + 0x1c], 0x2ee0
mov esi, 0x2ee0
jmp 0x549408
mov dword [ebx + 0x1c], 0x3e80
mov esi, 0x3e80
cmp ecx, 0x3e9
jne 0x549507
mov dword [ebx + 0x18], 0x3e80
mov dword [ebx + 0x14], 0x3e80
mov esi, dword [ebx + 0x84]
xor eax, eax
test esi, esi
mov edx, 0x4fb
sete al
mov dword [ebx + 0x38], eax
mov eax, dword [ebp + 0x38]
dec eax
cmp eax, edx
cmovg eax, edx
mov dword [ebp + 8], eax
shl eax, 3
mov dword [ebx + 0x3c], eax
cmp ecx, 0x3e9
jne 0x549468
lea ecx, [eax + eax*8]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebx + 0x3c], eax
test esi, esi
jne 0x54949b
mov esi, dword [ebx + 0x24]
mov eax, esi
imul eax, dword [ebp + 0x74]
mov ecx, dword [ebx + 0x80]
shl ecx, 3
cdq
idiv ecx
mov ecx, 1
shl eax, 3
mov dword [ebx + 0x3c], eax
lea eax, [esi - 0x7d0]
cmp eax, 1
cmovl eax, ecx
mov dword [ebx + 0x24], eax
cmp dword [ebp + 0x24], 0
movss xmm2, dword [0x5f47a0]
movss xmm3, dword [0x5f47fc]
movss xmm1, dword [0x5f479c]
je 0x5495f4
mov esi, dword [ebp + 0x64]
xor ecx, ecx
mov edx, dword [ebx + 0x94]
mov eax, edx
mov dword [ebp + 0x3c], 0
imul eax, dword [esi]
test eax, eax
jle 0x5495bf
mov edi, dword [ebp + 0x1c]
lea esi, [ebx + 0xd0]
movss xmm0, dword [esi]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp + 0x7c], xmm0
ja 0x549588
mov dword [ebp + 0x7c], 0xc7000000
jmp 0x549594
mov dword [ebx + 0x18], 0x1f40
cmp ecx, 0x3e8
jne 0x54941b
cmp dword [ebp + 0x18], 0x32
mov eax, dword [ebp + 0x3c]
mov dword [ebx + 0x14], 0x3e80
jle 0x549541
lea ecx, [eax + eax]
mov eax, 0x55555556
imul ecx
mov ecx, dword [ebx + 0xb4]
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 0x32c8
jge 0x549560
cmp esi, 0x2ee0
mov dword [ebx + 0x14], 0x2ee0
mov edx, 0x2ee0
cmova esi, edx
mov dword [ebx + 0x1c], esi
cmp eax, 0x2580
jge 0x549422
cmp esi, 0x1f40
mov dword [ebx + 0x14], 0x1f40
mov eax, 0x1f40
cmova esi, eax
mov dword [ebx + 0x1c], esi
jmp 0x549422
comiss xmm1, xmm0
ja 0x549594
mov dword [ebp + 0x7c], 0x46fffe00
fld dword [ebp + 0x7c]
fistp dword [ebp + 0x24]
mov ax, word [ebp + 0x24]
add esi, 4
mov word [edi + ecx*2], ax
inc ecx
mov eax, dword [ebp + 0x64]
mov edx, dword [ebx + 0x94]
mov eax, dword [eax]
imul eax, edx
cmp ecx, eax
jl 0x5494e5
mov edi, dword [ebp + 0x68]
mov esi, dword [ebp + 0x1c]
lea eax, [ebp + 0x3c]
mov ecx, dword [ebp + 0x50]
push 1
push eax
push 0
push edx
push esi
lea edx, [ebx + 8]
call fcn.0054baf0
movss xmm1, dword [0x5f479c]
add esp, 0x14
movss xmm2, dword [0x5f47a0]
movss xmm3, dword [0x5f47fc]
jmp 0x5495f7
mov esi, dword [ebp + 0x1c]
mov eax, dword [ebp + 0x64]
xor edx, edx
mov ecx, dword [eax]
mov eax, ecx
imul eax, dword [ebp + 0x74]
test eax, eax
jle 0x54965f
mov edi, dword [ebp + 0x34]
mov ebx, dword [ebp + 0x64]
mov edi, edi
imul ecx, dword [ebp + 0x48]
add ecx, edx
movss xmm0, dword [edi + ecx*4]
mulss xmm0, xmm2
comiss xmm0, xmm3
movss dword [ebp + 0x7c], xmm0
ja 0x549632
mov dword [ebp + 0x7c], 0xc7000000
jmp 0x54963e
comiss xmm1, xmm0
ja 0x54963e
mov dword [ebp + 0x7c], 0x46fffe00
fld dword [ebp + 0x7c]
fistp dword [ebp + 0x24]
mov ax, word [ebp + 0x24]
mov word [esi + edx*2], ax
inc edx
mov ecx, dword [ebx]
mov eax, ecx
imul eax, dword [ebp + 0x74]
cmp edx, eax
jl 0x549610
mov ebx, dword [ebp + 0x28]
mov edi, dword [ebp + 0x68]
mov ecx, dword [ebp + 0x50]
lea eax, [ebp + 8]
push 0
push eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 0x74]
lea edx, [ebx + 8]
push esi
call fcn.0054baf0
mov esi, eax
add esp, 0x14
mov dword [ebp + 0x4c], esi
test esi, esi
jne 0x54a121
mov esi, dword [ebx + 0xb4]
cmp dword [ebp + 8], eax
jne 0x54973a
mov dword [ebx + 0xfd0], eax
xor ecx, ecx
mov eax, dword [ebx + 0x80]
cdq
idiv dword [ebp + 0x74]
mov dword [ebp + 0x74], ecx
cmp eax, 0x190
jge 0x5496c0
add eax, eax
inc ecx
cmp eax, 0x190
jl 0x5496b3
mov dword [ebp + 0x74], ecx
cmp esi, 0x3e8
jne 0x5496da
mov eax, dword [ebp + 0x68]
sub cl, 2
add al, 3
shl cl, 3
shl al, 5
or al, cl
jmp 0x549711
cmp esi, 0x3ea
jne 0x549702
xor edx, edx
lea ecx, [edi - 0x44e]
test ecx, ecx
movzx eax, cl
cmovns edx, eax
or dl, 0xfc
shl dl, 2
or dl, byte [ebp + 0x74]
shl dl, 3
mov al, dl
jmp 0x549711
mov eax, dword [ebp + 0x68]
sub cl, 2
or al, 6
add al, al
or al, cl
shl al, 3
cmp dword [ebx + 0x98], 2
mov edx, dword [ebp + 0x30]
setne cl
dec cl
and cl, 4
or cl, al
mov eax, 1
mov byte [edx], cl
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret
cmp esi, 0x3e8
jne 0x549778
mov eax, dword [ebx + 0x48]
cmp eax, 0x1f40
jne 0x549755
mov dword [ebp + 0x68], 0x44d
jmp 0x549778
cmp eax, 0x2ee0
jne 0x549765
mov dword [ebp + 0x68], 0x44e
jmp 0x549778
mov ecx, dword [ebp + 0x68]
cmp eax, 0x3e80
mov eax, 0x44f
cmove ecx, eax
mov dword [ebp + 0x68], ecx
mov eax, dword [ebx + 0x58]
mov dword [ebx + 0x44], eax
test eax, eax
je 0x54979a
mov dword [ebp + 0x58], 1
mov dword [ebp + 0x40], 0
mov dword [ebx + 0xc8], 1
mov edi, dword [ebp + 0x68]
mov eax, 0x15
lea ecx, [edi - 0x44d]
cmp ecx, 4
ja case.0x5497ad.1105
jmp dword [ecx*4 + 0x54a1d8]
mov eax, 0xd
jmp case.0x5497ad.1105
mov eax, 0x11
jmp case.0x5497ad.1105
mov eax, 0x13
mov esi, dword [ebp + 0x5c]
push eax
push 0x271c
push esi
call fcn.00550a90
push dword [ebx + 0x98]
push 0x2718
push esi
call fcn.00550a90
push 0xffffffffffffffff
push 0xfa2
push esi
call fcn.00550a90
mov eax, dword [ebx + 0xb4]
add esp, 0x24
mov dword [ebp + 0x50], eax
cmp eax, 0x3e8
je 0x5498df
push 0
push 0xfa6
push esi
call fcn.00550a90
push 2
push 0x2712
push esi
call fcn.00550a90
mov ecx, dword [ebx + 0xb4]
add esp, 0x18
mov dword [ebp + 0x50], ecx
cmp ecx, 0x3e9
jne 0x549887
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x7c], eax
bsr eax, eax
sub ecx, eax
add ecx, 6
sar ecx, 3
cmp dword [ebp + 0x58], 0
lea esi, [ecx + 3]
cmove esi, ecx
cmp dword [ebx + 0x84], 0
je 0x54987a
mov eax, dword [ebx + 0x24]
imul eax, dword [ebp + 0x74]
mov ecx, dword [ebx + 0x80]
shl ecx, 3
cdq
idiv ecx
sub esi, eax
add dword [ebp + 0x60], esi
jmp 0x5498ec
mov eax, dword [ebp + 0x60]
cmp esi, eax
cmovg eax, esi
mov dword [ebp + 0x60], eax
jmp 0x5498ec
cmp dword [ebx + 0x84], 0
je 0x5498d4
push 1
push 0xfa6
push esi
call fcn.00550a90
push dword [ebx + 0x88]
push 0xfb4
push esi
call fcn.00550a90
push dword [ebx + 0x8c]
push 0xfa2
push esi
call fcn.00550a90
mov ecx, dword [ebp + 0x38]
add esp, 0x24
mov eax, dword [ebx + 0xb4]
dec ecx
mov dword [ebp + 0x60], ecx
mov dword [ebp + 0x50], eax
jmp 0x5498e6
mov eax, dword [ebp + 0x60]
mov dword [ebp + 0x60], eax
mov dword [ebp + 0x50], ecx
jmp 0x5498e6
mov dword [ebp + 0x60], 0
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x7c], eax
mov eax, dword [ebp + 0x64]
mov eax, dword [eax]
mov ecx, eax
imul ecx, dword [ebx + 0x80]
mov dword [ebp + 0x3c], eax
mov eax, 0x51eb851f
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp + 0x28], eax
shl eax, 2
call fcn.00584260
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0x3c]
mov esi, ecx
mov dword [ebp + 0x38], esp
cmp eax, 0x3e8
je 0x5499aa
mov edx, dword [ebx + 0xb8]
cmp eax, edx
je 0x5499aa
test edx, edx
jle 0x5499aa
cmp dword [ebp + 0x28], 0
jle 0x5499aa
xor edi, edi
mov ecx, dword [ebx + 0x94]
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov eax, dword [ebp + 0x38]
sub ecx, dword [ebx + 0x64]
imul ecx, dword [ebp + 0x3c]
add ecx, edi
fld dword [ebx + ecx*4 + 0xd0]
fstp dword [eax + edi*4]
mov eax, dword [ebp + 0x64]
inc edi
mov esi, dword [eax]
mov ecx, esi
imul ecx, dword [ebx + 0x80]
mov eax, 0x51eb851f
mov dword [ebp + 0x3c], esi
imul ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jl 0x549945
mov edx, dword [ebp - 0xc]
mov edi, dword [ebp + 0x68]
mov dword [ebp + 0x7c], edx
jmp 0x5499ad
mov edx, dword [ebp + 0x7c]
mov eax, dword [ebx + 0x94]
xor ecx, ecx
sub eax, dword [ebp + 0x48]
sub eax, dword [ebp + 0x74]
imul eax, esi
test eax, eax
jle 0x5499ff
mov edx, dword [ebp + 0x74]
lea edi, [ebx + 0xd0]
jmp 0x5499d0
mov eax, dword [ebp + 0x64]
imul esi, edx
add esi, ecx
inc ecx
fld dword [ebx + esi*4 + 0xd0]
fstp dword [edi]
mov esi, dword [eax]
add edi, 4
mov eax, dword [ebx + 0x94]
sub eax, dword [ebp + 0x48]
sub eax, edx
imul eax, esi
cmp ecx, eax
jl 0x5499d0
mov edi, dword [ebp + 0x68]
mov edx, dword [ebp + 0x7c]
mov eax, dword [ebx + 0x94]
imul eax, esi
cmp ecx, eax
jge 0x549a4b
mov edi, dword [ebx + 0x94]
lea edx, [ecx + 0x34]
lea edx, [ebx + edx*4]
mov eax, dword [ebp + 0x48]
sub eax, edi
add eax, dword [ebp + 0x74]
imul eax, esi
mov esi, dword [ebp + 0x34]
add eax, ecx
inc ecx
fld dword [esi + eax*4]
mov eax, dword [ebp + 0x64]
fstp dword [edx]
mov edi, dword [ebx + 0x94]
add edx, 4
mov esi, dword [eax]
mov eax, esi
imul eax, edi
cmp ecx, eax
jl 0x549a18
mov edi, dword [ebp + 0x68]
mov edx, dword [ebp + 0x7c]
cmp dword [ebx + 0xb4], 0x3e9
jne 0x549a60
cmp dword [ebx + 0x98], 1
jne 0x549a67
mov dword [ebx + 0x54], 0x4000
mov esi, dword [ebp + 0x64]
cmp dword [esi], 2
jne 0x549af7
mov eax, 0x4000
cmp word [ebx + 0x9c], ax
jl 0x549a86
cmp dword [ebx + 0x54], eax
jge 0x549af7
lea eax, [ebp + 0x7c]
push eax
push 0x271f
push dword [ebp + 0x5c]
call fcn.00550a90
mov eax, dword [ebp + 0x7c]
add esp, 0xc
cvtsi2ss xmm0, dword [ebx + 0x54]
mov edx, dword [ebp + 0x34]
mov ecx, edx
push dword [ebx + 0x80]
mulss xmm0, dword [0x5f4530]
push dword [eax + 0x3c]
push dword [esi]
push dword [ebp + 0x74]
push dword [eax + 4]
movsx eax, word [ebx + 0x9c]
sub esp, 8
movss dword [esp + 4], xmm0
cvtsi2ss xmm0, eax
mulss xmm0, dword [0x5f4530]
movss dword [esp], xmm0
call fcn.00548550
mov ax, word [ebx + 0x54]
add esp, 0x1c
mov edx, dword [ebp - 0xc]
mov word [ebx + 0x9c], ax
mov esi, dword [ebx + 0xb4]
cmp esi, 0x3ea
je 0x549c52
bsr eax, edx
xor ecx, ecx
mov dword [ebp + 0x7c], 0x14
cmp esi, 0x3e9
cmove ecx, dword [ebp + 0x7c]
sub ecx, eax
mov eax, dword [ebp - 0x14]
add eax, 0x10
add ecx, eax
mov eax, dword [ebp + 0x54]
lea eax, [eax*8 - 8]
cmp ecx, eax
jg 0x549c52
cmp esi, 0x3e9
jne 0x549b89
mov ecx, dword [ebp + 0x58]
test ecx, ecx
jne 0x549b62
mov ecx, dword [ebp - 0x14]
bsr eax, edx
sub ecx, eax
mov eax, dword [ebp + 0x60]
add ecx, 0x24
shl eax, 3
cmp ecx, eax
jg 0x549b89
mov ecx, dword [ebp + 0x58]
mov eax, edx
shr eax, 0xc
sub edx, eax
test ecx, ecx
je 0x549b72
add dword [ebp - 8], edx
test ecx, ecx
cmovne edx, eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0xc], edx
call fcn.0054cc80
mov esi, dword [ebx + 0xb4]
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x58]
test eax, eax
je 0x549c5b
mov ecx, dword [ebp + 0x40]
mov eax, edx
shr eax, 1
sub edx, eax
test ecx, ecx
je 0x549ba6
add dword [ebp - 8], edx
test ecx, ecx
cmovne edx, eax
lea ecx, [ebp - 0x28]
mov dword [ebp - 0xc], edx
call fcn.0054cc80
mov esi, dword [ebx + 0xb4]
mov eax, dword [ebp - 0xc]
mov dword [ebp + 0x7c], eax
cmp esi, 0x3e9
jne 0x549bd3
mov ecx, dword [ebp + 0x54]
sub ecx, dword [ebp + 0x60]
sub ecx, 2
jmp 0x549bec
mov ecx, dword [ebp - 0x14]
bsr eax, eax
sub ecx, eax
mov eax, dword [ebp + 0x54]
add ecx, 6
sar ecx, 3
sub eax, ecx
mov ecx, eax
mov dword [ebp + 0x44], eax
dec ecx
mov eax, 0x51eb851f
imul dword [ebx + 0x8c]
sar edx, 9
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
cmovge ecx, eax
mov eax, 2
cmp ecx, eax
cmovl ecx, eax
mov eax, 0x101
cmp ecx, 0x101
cmovg ecx, eax
mov dword [ebp + 0x44], ecx
cmp esi, 0x3e9
jne 0x549c4a
lea edx, [ecx - 2]
push 0x100
lea ecx, [ebp - 0x28]
call fcn.0054ce90
mov esi, dword [ebx + 0xb4]
add esp, 4
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp + 0x58]
jmp 0x549c57
mov edx, dword [ebp + 0x7c]
mov eax, dword [ebp + 0x58]
jmp 0x549c57
xor eax, eax
mov dword [ebp + 0x58], eax
test eax, eax
jne 0x549c6c
xor ecx, ecx
mov dword [ebx + 0xc8], 0
mov dword [ebp + 0x44], ecx
jmp 0x549c6f
mov ecx, dword [ebp + 0x44]
cmp esi, 0x3ea
mov dword [ebp + 0x7c], 0
mov eax, 0x11
cmove eax, dword [ebp + 0x7c]
mov dword [ebp + 0x7c], eax
cmp esi, 0x3e8
jne 0x549cae
mov esi, dword [ebp - 0x14]
lea ecx, [ebp - 0x28]
bsr eax, edx
sub esi, eax
add esi, 6
sar esi, 3
mov dword [ebp + 0x4c], esi
call fcn.0054cfd0
mov dword [ebp + 0x28], esi
jmp 0x549cdc
mov esi, dword [ebp + 0x54]
mov eax, dword [ebp - 0x20]
sub esi, ecx
mov ecx, dword [ebp - 0x28]
dec esi
cmp esi, dword [ebp + 0x60]
push eax
cmovge esi, dword [ebp + 0x60]
sub ecx, eax
mov eax, dword [ebp - 0x24]
add eax, ecx
mov dword [ebp + 0x28], esi
push eax
lea eax, [esi + ecx]
push eax
call fcn.005854c0
add esp, 0xc
mov dword [ebp - 0x24], esi
cmp dword [ebp + 0x58], 0
je 0x549d62
cmp dword [ebp + 0x40], 0
je 0x549d62
push 0
push 0x271a
push dword [ebp + 0x5c]
call fcn.00550a90
push 0
push 0xfa6
push dword [ebp + 0x5c]
call fcn.00550a90
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x5c]
add eax, esi
push 0
push dword [ebp + 0x44]
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x34]
push eax
call fcn.0054e9e0
add esp, 0x28
test eax, eax
js 0x54a121
lea eax, [ebp + 0x10]
push eax
push 0xfbf
push dword [ebp + 0x5c]
call fcn.00550a90
push 0xfbc
push dword [ebp + 0x5c]
call fcn.00550a90
add esp, 0x14
push dword [ebp + 0x7c]
push 0x271a
push dword [ebp + 0x5c]
call fcn.00550a90
mov ecx, dword [ebx + 0xb4]
add esp, 0xc
cmp ecx, 0x3e8
je 0x549e1c
mov eax, dword [ebx + 0xb8]
cmp ecx, eax
je 0x549ddd
test eax, eax
jle 0x549ddd
push 0xfbc
push dword [ebp + 0x5c]
call fcn.00550a90
mov ecx, dword [ebp + 0x5c]
lea eax, [ebp + 0x7c]
push 0
push 2
push eax
mov eax, 0x51eb851f
imul dword [ebx + 0x80]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp + 0x38]
push eax
call fcn.0054e9e0
push 0
push 0x2712
push dword [ebp + 0x5c]
call fcn.00550a90
add esp, 0x24
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x7c], eax
bsr eax, eax
sub ecx, eax
lea eax, [esi*8]
dec ecx
cmp ecx, eax
jg 0x549e21
mov edx, dword [ebp + 0x34]
lea eax, [ebp - 0x28]
mov ecx, dword [ebp + 0x5c]
push eax
push esi
push 0
push dword [ebp + 0x74]
call fcn.0054e9e0
mov esi, eax
add esp, 0x10
mov dword [ebp + 0x4c], esi
test esi, esi
js 0x54a121
mov esi, dword [ebp - 0xc]
jmp 0x549e24
mov esi, dword [ebp + 0x7c]
cmp dword [ebp + 0x58], 0
je 0x549ef7
cmp dword [ebp + 0x40], 0
jne 0x549ef7
mov ecx, dword [ebx + 0x80]
mov eax, 0x51eb851f
imul ecx
mov eax, 0x51eb851f
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
imul ecx
push 0xfbc
push dword [ebp + 0x5c]
sar edx, 7
mov esi, edx
shr esi, 0x1f
add esi, edx
call fcn.00550a90
push 0
push 0x271a
push dword [ebp + 0x5c]
call fcn.00550a90
push 0
push 0x2712
push dword [ebp + 0x5c]
call fcn.00550a90
mov ecx, dword [ebp + 0x64]
lea eax, [ebp + 0x7c]
push 0
push 2
push eax
mov eax, dword [ebp + 0x74]
sub eax, esi
sub eax, edi
imul eax, dword [ecx]
mov ecx, dword [ebp + 0x5c]
push esi
mov esi, dword [ebp + 0x34]
lea edx, [esi + eax*4]
call fcn.0054e9e0
mov eax, dword [ebp + 0x28]
add eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x64]
push 0
push dword [ebp + 0x44]
push eax
mov eax, dword [ebp + 0x74]
sub eax, edi
imul eax, dword [ecx]
push edi
lea edx, [esi + eax*4]
mov esi, dword [ebp + 0x5c]
mov ecx, esi
call fcn.0054e9e0
add esp, 0x40
test eax, eax
js 0x54a121
lea eax, [ebp + 0x10]
push eax
push 0xfbf
push esi
call fcn.00550a90
mov esi, dword [ebp - 0xc]
add esp, 0xc
mov edi, dword [ebp + 0x68]
mov eax, dword [ebx + 0x80]
xor ecx, ecx
cdq
idiv dword [ebp + 0x74]
mov edx, dword [ebx + 0xb4]
mov dword [ebp + 0x7c], ecx
cmp eax, 0x190
jge 0x549f20
add eax, eax
inc ecx
cmp eax, 0x190
jl 0x549f13
mov dword [ebp + 0x7c], ecx
cmp edx, 0x3e8
jne 0x549f3a
mov eax, dword [ebp + 0x68]
sub cl, 2
add al, 3
shl cl, 3
shl al, 5
or cl, al
jmp 0x549f71
cmp edx, 0x3ea
jne 0x549f62
xor edx, edx
lea ecx, [edi - 0x44e]
test ecx, ecx
movzx eax, cl
cmovns edx, eax
or dl, 0xfc
shl dl, 2
or dl, byte [ebp + 0x7c]
shl dl, 3
mov cl, dl
jmp 0x549f71
mov eax, dword [ebp + 0x68]
sub cl, 2
or al, 6
add al, al
or cl, al
shl cl, 3
cmp dword [ebx + 0x98], 2
mov edx, dword [ebp + 0x30]
setne al
dec al
and al, 4
or al, cl
mov byte [edx], al
mov eax, esi
xor eax, dword [ebp + 0x10]
cmp dword [ebp + 0xc], 0
mov dword [ebx + 0xfd0], eax
mov eax, 0x3ea
jne 0x549fa2
mov eax, dword [ebx + 0xb4]
mov edx, dword [ebp + 0x54]
mov dword [ebx + 0xb8], eax
mov eax, dword [ebx + 0x98]
mov ecx, dword [ebp - 0x14]
mov dword [ebx + 0xbc], eax
mov eax, dword [ebp + 0x74]
mov dword [ebx + 0xc0], eax
bsr eax, esi
mov dword [ebx + 0xcc], 0
sub ecx, eax
lea eax, [edx*8 - 8]
dec ecx
cmp ecx, eax
jle 0x54a037
cmp edx, 2
jge 0x549ff6
mov eax, 0xfffffffe
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret
mov eax, dword [ebp + 0x2c]
mov byte [eax], 0
mov eax, 1
mov dword [ebx + 0xfd0], 0
mov ecx, dword [ebp + 0x30]
mov esi, dword [ebp + 0x44]
add esi, eax
cmp dword [ebx + 0x84], 0
lea edi, [esi + 1]
jne 0x54a136
cmp edi, 3
jl 0x54a136
cmp edi, edx
jne 0x54a062
xor eax, eax
jmp 0x54a11d
cmp dword [ebx + 0xb4], 0x3e8
mov eax, dword [ebp + 0x4c]
jne 0x54a00b
cmp dword [ebp + 0x58], 0
jne 0x54a00b
cmp eax, 2
jle 0x54a00b
mov ecx, dword [ebp + 0x30]
cmp byte [eax + ecx], 0
jne 0x54a00e
dec eax
cmp eax, 2
jg 0x54a054
jmp 0x54a00e
jg 0x54a118
test byte [ecx], 3
jne 0x54a118
mov eax, edx
sub eax, edi
mov dword [ebp + 0x74], eax
cmp eax, 2
jl 0x54a0ff
lea ecx, [eax - 2]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp + 0x30]
sar edx, 7
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
add ecx, esi
lea esp, [esp]
mov al, byte [ecx]
lea ecx, [ecx - 1]
mov byte [ebx + ecx + 3], al
sub esi, 1
jne 0x54a0a0
mov esi, dword [ebp + 0x30]
mov eax, dword [ebp + 0x2c]
or byte [esi], 3
mov byte [eax], 0x41
test ebx, ebx
jle 0x54a0d0
push ebx
lea eax, [esi + 2]
push 0xff
push eax
call fcn.00585a40
add esp, 0xc
mov al, bl
lea edx, [ebx + 3]
sub al, 2
add edx, edi
add al, byte [ebp + 0x74]
mov byte [ebx + esi + 2], al
mov eax, dword [ebp + 0x54]
cmp edx, eax
jge 0x54a0f8
sub eax, edx
lea ecx, [edx + esi]
push eax
push 0
push ecx
call fcn.00585a40
add esp, 0xc
mov edx, dword [ebp + 0x54]
xor eax, eax
jmp 0x54a11d
mov ebx, dword [ebp + 0x2c]
mov al, byte [esi + ecx]
mov byte [esi + ebx], al
dec esi
cmp esi, 1
jge 0x54a102
or byte [ecx], 3
xor eax, eax
mov byte [ebx], 1
jmp 0x54a11d
mov eax, 1
test eax, eax
je 0x54a134
mov eax, 0xfffffffd
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret
mov edi, edx
mov eax, edi
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret
mov eax, dword [ebx + 0xc4]
mov edx, 0x44d
mov ecx, dword [ebx + 0xb4]
test eax, eax
cmove eax, edx
test ecx, ecx
mov edx, 0x3e8
cmove ecx, edx
cmp esi, 0x64
mov edx, 0x3ea
cmovg ecx, edx
cmp esi, 0x32
jge 0x54a17b
lea ecx, [edx - 2]
jmp 0x54a183
cmp ecx, 0x3e8
jne 0x54a191
cmp eax, 0x44f
jle 0x54a1a3
mov eax, 0x44f
jmp 0x54a1ad
cmp ecx, edx
jne 0x54a1a3
cmp eax, 0x44e
jne 0x54a1a3
mov eax, 0x44d
jmp 0x54a1ad
mov edx, 0x450
cmp eax, edx
cmovle eax, edx
push dword [ebx + 0x98]
mov edx, esi
push eax
call fcn.00548230
mov ecx, dword [ebp + 0x2c]
add esp, 8
mov byte [ecx], al
mov eax, 1
lea esp, [ebp - 0x1d4]
pop edi
pop esi
pop ebx
lea esp, [ebp + 0x6c]
pop ebp
ret