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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5de80e
mov eax, dword fs:[0]
push eax
sub esp, 0x1c8
push ebx
push esi
push edi
mov eax, dword [0x680f10]
xor eax, esp
push eax
lea eax, [esp + 0x1d8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x20]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov ecx, dword [eax + 4]
cmp ecx, ebx
jne 0x52b936
xor eax, eax
jmp 0x52b93e
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 3
shr eax, 1
mov dword [esp + 0x14], eax
jne 0x52b94e
mov dword [esp + 0x14], 4
mov eax, dword [ebp + 0x18]
cmp eax, 4
ja case.0x52b95a.1
jmp dword [eax*4 + 0x52d004]
cmp dword [ebp + 0xc], ebx
je case.0x52b95a.1
push 0x602320
lea ecx, [esp + 0x178]
call fcn.0048cd50
mov esi, dword [ebp + 8]
lea eax, [esp + 0x174]
push eax
mov ecx, esi
mov dword [esp + 0x1e4], ebx
call fcn.004b7950
lea ecx, [esp + 0x174]
mov edi, eax
mov dword [esp + 0x1e0], 0xffffffff
call fcn.004b36e0
cmp edi, ebx
jne case.0x52b95a.1
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
push 0x602328
lea ecx, [esp + 0x198]
mov dword [esp + 0x1e4], 1
call fcn.0048cd50
lea ecx, [esp + 0x194]
push ecx
mov ecx, esi
mov byte [esp + 0x1e4], 2
call fcn.004b7950
lea ecx, [esp + 0x194]
mov edi, eax
mov byte [esp + 0x1e0], 1
call fcn.004b36e0
cmp edi, ebx
je 0x52ba7f
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
cmp eax, 4
jne 0x52ba7f
mov ecx, edi
xor ebx, ebx
call fcn.004b5810
test eax, eax
jbe 0x52ba7f
push ebx
mov ecx, edi
call fcn.004b5830
mov esi, eax
test esi, esi
je 0x52ba7f
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 1
jne 0x52ba7f
mov ecx, esi
call fcn.004b57f0
call fcn.0044eb60
test eax, eax
mov dword [esp + 0x50], eax
jl 0x52ba8d
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x90]
call fcn.004ecc00
mov ecx, edi
add ebx, 1
call fcn.004b5810
cmp ebx, eax
jb 0x52ba31
mov eax, dword [ebp + 0x1c]
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x52baaf
xor eax, eax
jmp 0x52bab7
lea ecx, [esp + 0x8c]
call fcn.0048b450
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 3
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
shr eax, 1
test ecx, ecx
mov esi, eax
mov dword [esp + 0x28], esi
jne 0x52bacd
xor eax, eax
jmp 0x52bad5
mov eax, dword [edx + 8]
sub eax, ecx
sar eax, 3
cmp eax, esi
jae 0x52bae6
mov ecx, edx
call fcn.004ae740
mov esi, eax
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x90]
test edx, edx
mov ecx, dword [esp + 0x94]
jne 0x52bafc
xor eax, eax
jmp 0x52bb03
mov eax, ecx
sub eax, edx
sar eax, 2
cmp eax, esi
jae 0x52bb20
test edx, edx
jne 0x52bb13
xor edi, edi
mov dword [esp + 0x28], edi
jmp 0x52bb24
sub ecx, edx
sar ecx, 2
mov dword [esp + 0x28], ecx
mov edi, ecx
jmp 0x52bb24
mov edi, dword [esp + 0x28]
xor ebx, ebx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebx
xor esi, esi
cmp edi, ebx
mov byte [esp + 0x1e0], 4
jbe 0x52bbb7
fldz
fstp qword [esp + 0x3c]
jmp 0x52bb60
lea edx, [esp + 0x3c]
push edx
lea ecx, [esp + 0x70]
call fcn.004d8840
mov ecx, dword [esp + 0x90]
cmp ecx, ebx
je 0x52bb89
mov eax, dword [esp + 0x94]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x52bb95
call fcn.0044b7ad
mov ecx, dword [esp + 0x90]
fild dword [ecx + esi*4]
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x70]
fsub qword [0x659f48]
fstp qword [esp + 0x30]
call fcn.004d8840
add esi, 1
cmp esi, edi
jb 0x52bb60
mov edi, dword [ebp + 0x20]
mov ecx, edi
xor esi, esi
call fcn.004ae740
test eax, eax
jbe 0x52bc00
mov ecx, dword [edi + 4]
cmp ecx, ebx
je 0x52bbda
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52bbdf
call fcn.0044b7ad
mov ecx, dword [edi + 4]
lea edx, [ecx + esi*8]
push edx
lea ecx, [esp + 0x80]
call fcn.004d8840
mov ecx, edi
add esi, 1
call fcn.004ae740
cmp esi, eax
jb 0x52bbc7
push 0x602330
lea ecx, [esp + 0x118]
call fcn.0048cd50
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x114]
push eax
mov byte [esp + 0x1e4], 5
call fcn.004b7950
cmp dword [esp + 0x130], 0x10
mov ebx, eax
mov dword [esp + 0x18], ebx
mov byte [esp + 0x1e0], 4
mov dword [esp + 0x114], 0x5f1558
jb 0x52bc5c
mov ecx, dword [esp + 0x11c]
push ecx
call fcn.004274fc
add esp, 4
xor esi, esi
cmp ebx, esi
mov dword [esp + 0x130], 0xf
mov dword [esp + 0x12c], esi
mov byte [esp + 0x11c], 0
mov dword [esp + method.CScrollView.virtual_364], 0x5f13d0
je 0x52bcf6
mov edx, dword [ebx]
mov eax, dword [edx]
mov ecx, ebx
call eax
cmp eax, 4
jne 0x52bcf6
mov eax, dword [esp + 0x28]
add eax, eax
cmp eax, esi
jbe 0x52bcf6
mov edi, edi
push esi
mov ecx, ebx
call fcn.004b5830
mov edi, eax
test edi, edi
je 0x52bce9
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
cmp eax, 1
jne 0x52bce9
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x52bcd0
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52bcd9
call fcn.0044b7ad
mov ecx, dword [esp + 0x70]
lea ebx, [ecx + esi*8]
mov ecx, edi
call fcn.004b57f0
fstp qword [ebx]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
add esi, 1
add eax, eax
cmp esi, eax
jb 0x52bca0
push str.Decode
lea ecx, [esp + 0x138]
call fcn.0048cd50
lea ecx, [esp + 0x134]
push ecx
mov ecx, dword [ebp + 8]
mov byte [esp + 0x1e4], 6
call fcn.004b7950
cmp dword [esp + 0x150], 0x10
mov ebx, eax
mov dword [esp + 0x18], ebx
mov byte [esp + 0x1e0], 4
mov dword [esp + 0x134], 0x5f1558
jb 0x52bd52
mov edx, dword [esp + 0x13c]
push edx
call fcn.004274fc
add esp, 4
xor esi, esi
cmp ebx, esi
mov dword [esp + 0x150], 0xf
mov dword [esp + 0x14c], esi
mov byte [esp + 0x13c], 0
mov dword [esp + method.CScrollView.virtual_364], 0x5f13d0
je 0x52bdf3
mov eax, dword [ebx]
mov edx, dword [eax]
mov ecx, ebx
call edx
cmp eax, 4
jne 0x52bdf3
mov eax, dword [esp + 0x14]
add eax, eax
cmp eax, esi
jbe 0x52bdf3
push esi
mov ecx, ebx
call fcn.004b5830
mov edi, eax
test edi, edi
je 0x52bde6
mov eax, dword [edi]
mov edx, dword [eax]
mov ecx, edi
call edx
cmp eax, 1
jne 0x52bde6
mov ecx, dword [esp + 0x80]
test ecx, ecx
je 0x52bdca
mov eax, dword [esp + 0x84]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52bdd6
call fcn.0044b7ad
mov ecx, dword [esp + 0x80]
lea ebx, [ecx + esi*8]
mov ecx, edi
call fcn.004b57f0
fstp qword [ebx]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
add esi, 1
add eax, eax
cmp esi, eax
jb 0x52bd94
push str.Filter
lea ecx, [esp + 0xb8]
mov dword [esp + 0x54], 0
call fcn.0048cd50
mov esi, dword [ebp + 8]
lea eax, [esp + 0xb4]
push eax
mov ecx, esi
mov byte [esp + 0x1e4], 7
mov dword [esp + 0x20], 1
call fcn.004b7950
test eax, eax
mov edi, 0x10
setne bl
cmp dword [esp + 0xd0], edi
mov dword [esp + 0x1e0], 4
mov dword [esp + 0xb4], 0x5f1558
jb 0x52be67
mov ecx, dword [esp + 0xbc]
push ecx
call fcn.004274fc
add esp, 4
xor eax, eax
test bl, bl
mov dword [esp + 0xd0], 0xf
mov dword [esp + 0xcc], eax
mov byte [esp + 0xbc], al
mov dword [esp + 0xb4], 0x5f13d0
je 0x52bf09
mov ecx, dword [esp + 0x80]
cmp ecx, eax
je 0x52bea7
push ecx
call fcn.004274fc
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x70]
cmp ecx, eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
je 0x52becf
push ecx
call fcn.004274fc
add esp, 4
xor eax, eax
mov ecx, dword [esp + 0x90]
cmp ecx, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], eax
je case.0x52b95a.1
push ecx
call fcn.004274fc
add esp, 4
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push str.BitsPerSample
lea ecx, [esp + 0x158]
call fcn.0048cd50
lea edx, [esp + 0x154]
push edx
mov ecx, esi
mov byte [esp + 0x1e4], 8
call fcn.004b7950
cmp dword [esp + 0x170], edi
mov esi, eax
mov byte [esp + 0x1e0], 4
mov dword [esp + 0x154], 0x5f1558
jb 0x52bf5f
mov eax, dword [esp + 0x15c]
push eax
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0x170], 0xf
mov dword [esp + 0x16c], 0
mov byte [esp + 0x15c], 0
mov dword [esp + method.CScrollView.virtual_364], 0x5f13d0
je 0x52bfa9
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 1
jne 0x52bfa9
mov ecx, esi
call fcn.004b57f0
call fcn.0044eb60
mov dword [esp + 0x50], eax
mov ebx, dword [ebp + 0xc]
mov ecx, ebx
call fcn.004b5260
mov edx, dword [ebx + 0xc]
lea ecx, [ebx + 0xc]
mov esi, eax
mov eax, dword [edx + 0x14]
mov dword [esp + 0x24], esi
call eax
xor edi, edi
cmp esi, edi
mov dword [esp + 0x9c], eax
je 0x52c648
cmp eax, edi
je 0x52c648
cmp dword [esp + 0x28], edi
fldz
fstp qword [esp + 0x3c]
mov dword [esp + 0x54], edi
jbe 0x52c354
mov ebx, dword [ebp + 0x1c]
mov dword [esp + 0x18], edi
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x52c010
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x54], eax
jb 0x52c015
call fcn.0044b7ad
mov eax, dword [esp + 0x54]
mov esi, dword [esi + 4]
mov ecx, dword [ebx + 4]
mov edi, dword [esp + 0x18]
add eax, eax
add eax, eax
add eax, eax
add esi, eax
test ecx, ecx
mov dword [esp + 0x1c], eax
je 0x52c03f
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x52c044
call fcn.0044b7ad
mov ecx, dword [ebx + 4]
fld qword [ecx + edi*8]
fcomp qword [esi]
fnstsw ax
test ah, 5
jp 0x52c07f
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x52c06b
mov eax, dword [edx + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x54], eax
jb 0x52c073
call fcn.0044b7ad
mov edx, dword [ebp + 0x10]
mov ecx, dword [edx + 4]
mov eax, dword [esp + 0x1c]
fld qword [eax + ecx]
jmp 0x52c09d
test ecx, ecx
je 0x52c08f
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x52c094
call fcn.0044b7ad
mov ecx, dword [ebx + 4]
fld qword [ecx + edi*8]
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
fstp qword [esp + 0x2c]
test ecx, ecx
je 0x52c0b7
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
lea ecx, [edi + 1]
cmp ecx, eax
jb 0x52c0bf
call fcn.0044b7ad
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
fld qword [ecx + edi*8 + 8]
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x52c169
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x52c0ea
mov eax, dword [edx + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x54], eax
jb 0x52c0f2
call fcn.0044b7ad
mov edx, dword [ebp + 0x10]
mov esi, dword [edx + 4]
mov ecx, dword [ebx + 4]
add esi, dword [esp + 0x1c]
test ecx, ecx
je 0x52c10c
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x52c114
call fcn.0044b7ad
mov edx, dword [ebp + 0x10]
mov ecx, dword [ebx + 4]
fld qword [ecx + edi*8]
fcomp qword [esi]
fnstsw ax
test ah, 5
jp 0x52c14c
mov ecx, dword [edx + 4]
test ecx, ecx
je 0x52c138
mov eax, dword [edx + 8]
sub eax, ecx
sar eax, 3
cmp dword [esp + 0x54], eax
jb 0x52c140
call fcn.0044b7ad
mov edx, dword [ebp + 0x10]
mov edx, dword [edx + 4]
mov eax, dword [esp + 0x1c]
fld qword [eax + edx]
jmp 0x52c188
test ecx, ecx
je 0x52c15c
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x52c161
call fcn.0044b7ad
mov ecx, dword [ebx + 4]
fld qword [ecx + edi*8]
jmp 0x52c188
test ecx, ecx
je 0x52c17c
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
lea edx, [edi + 1]
cmp edx, eax
jb 0x52c181
call fcn.0044b7ad
mov eax, dword [ebx + 4]
fld qword [eax + edi*8 + 8]
mov ecx, dword [esp + 0x70]
fstp qword [esp + 0x2c]
test ecx, ecx
je 0x52c1a4
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 3
lea ecx, [edi + 1]
cmp ecx, eax
jb 0x52c1a9
call fcn.0044b7ad
mov ecx, dword [esp + 0x70]
test ecx, ecx
lea edx, [ecx + edi*8 + 8]
mov dword [esp + 0x1c], edx
je 0x52c1c6
mov eax, dword [esp + 0x74]
sub eax, ecx
sar eax, 3
cmp edi, eax
jb 0x52c1cb
call fcn.0044b7ad
mov ecx, dword [ebx + 4]
test ecx, ecx
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x18]
lea edi, [eax + edx*8]
je 0x52c1ec
mov eax, dword [ebx + 8]
sub eax, ecx
sar eax, 3
add edx, 1
cmp edx, eax
jb 0x52c1f1
call fcn.0044b7ad
mov esi, dword [ebx + 4]
test esi, esi
je 0x52c208
mov eax, dword [ebx + 8]
mov ecx, dword [esp + 0x18]
sub eax, esi
sar eax, 3
cmp ecx, eax
jb 0x52c211
call fcn.0044b7ad
mov ecx, dword [esp + 0x18]
mov edx, dword [ebx + 4]
fld qword [edx + ecx*8]
fld qword [edi]
fld qword [esi + ecx*8 + 8]
fsub st(2)
fld st(0)
fldz
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x52c29c
fstp st(2)
fstp st(2)
fstp st(1)
fld st(0)
fst qword [esp + 0x1c]
fxch st(1)
fstp qword [esp + 0x2c]
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x52c25f
mov eax, dword [esp + 0x94]
mov edx, dword [esp + 0x54]
sub eax, ecx
sar eax, 2
cmp edx, eax
jb 0x52c275
fstp st(0)
call fcn.0044b7ad
fld qword [esp + 0x1c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x54]
fild dword [ecx + edx*4]
fsub qword [0x659f48]
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x52c2ce
fldz
fcom st(1)
fnstsw ax
test ah, 5
jnp 0x52c303
fstp st(1)
fst qword [esp + 0x1c]
jmp 0x52c305
mov eax, dword [esp + 0x1c]
fld qword [eax]
fsub st(3)
fld qword [esp + 0x2c]
fsubrp st(5)
fmulp st(4)
fxch st(3)
fdivrp st(1)
faddp st(1)
fst qword [esp + 0x1c]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x52c23a
fstp st(1)
fst qword [esp + 0x2c]
jmp 0x52c240
test ecx, ecx
fstp st(0)
je 0x52c2e4
mov eax, dword [esp + 0x94]
sub eax, ecx
sar eax, 2
cmp edx, eax
jb 0x52c2f4
call fcn.0044b7ad
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x54]
fild dword [ecx + edx*4]
fsub qword [0x659f48]
fst qword [esp + 0x1c]
jmp 0x52c305
fstp st(0)
test ecx, ecx
je 0x52c319
mov eax, dword [esp + 0x94]
sub eax, ecx
sar eax, 2
cmp edx, eax
jb 0x52c32f
fstp st(0)
call fcn.0044b7ad
fld qword [esp + 0x1c]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x54]
fild dword [ecx + edx*4]
add dword [esp + 0x18], 2
add edx, 1
cmp edx, dword [esp + 0x28]
fmul qword [esp + 0x3c]
mov dword [esp + 0x54], edx
faddp st(1)
fstp qword [esp + 0x3c]
jb 0x52bff8
xor edi, edi
fld qword [0x5fdc90]
fild dword [esp + 0x50]
call fcn.005b90c0
fsub qword [0x659f48]
mov ecx, dword [esp + 0x14]
cmp ecx, edi
mov dword [esp + 0x1c], edi
jbe 0x52c5d0
fsub qword [0x659f18]
mov edi, dword [ebp + 0x20]
fnstcw word [esp + 0x54]
movzx eax, word [esp + 0x54]
or eax, 0xc00
fstp qword [esp + 0x64]
fld qword [esp + 0x3c]
mov dword [esp + 0x18], eax
xor esi, esi
fldcw word [esp + 0x18]
fistp qword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
fldcw word [esp + 0x54]
imul eax, ecx
mov dword [esp + 0x18], eax
jmp 0x52c3c4
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x50]
add eax, ecx
mov ecx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0xa0]
push edx
push eax
push ecx
call fcn.0052b810
add esp, 0x10
test eax, eax
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
jge 0x52c3f7
fadd qword [0x659f10]
mov eax, dword [esp + 0x80]
fstp qword [esp + 0x3c]
test eax, eax
je 0x52c41b
mov edx, dword [esp + 0x84]
mov ecx, edx
sub ecx, eax
sar ecx, 3
lea ebx, [esi + 1]
cmp ebx, ecx
jb 0x52c42e
call fcn.0044b7ad
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
test eax, eax
lea ebx, [eax + esi*8 + 8]
je 0x52c43f
sub edx, eax
sar edx, 3
cmp esi, edx
jb 0x52c44b
call fcn.0044b7ad
mov eax, dword [esp + 0x80]
fld qword [eax + esi*8]
fld qword [esp + 0x64]
fld st(0)
fldz
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x52c467
fstp st(2)
fstp st(0)
jmp 0x52c477
fld qword [ebx]
fsub st(3)
fld qword [esp + 0x3c]
fsubrp st(2)
fmulp st(1)
fdivrp st(1)
faddp st(1)
mov ecx, dword [edi + 4]
fstp qword [esp + 0x3c]
test ecx, ecx
je 0x52c48e
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52c493
call fcn.0044b7ad
mov ecx, dword [edi + 4]
fld qword [ecx + esi*8]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x52c4c5
test ecx, ecx
fstp st(0)
je 0x52c4ba
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52c4bf
call fcn.0044b7ad
mov ecx, dword [edi + 4]
fld qword [ecx + esi*8]
test ecx, ecx
fstp qword [esp + 0x2c]
je 0x52c4dc
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
lea edx, [esi + 1]
cmp edx, eax
jb 0x52c4e1
call fcn.0044b7ad
mov ecx, dword [edi + 4]
fld qword [ecx + esi*8 + 8]
fcomp qword [esp + 0x2c]
fnstsw ax
test ah, 0x41
jne 0x52c53c
test ecx, ecx
je 0x52c503
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52c508
call fcn.0044b7ad
mov ecx, dword [edi + 4]
fld qword [ecx + esi*8]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x52c55b
test ecx, ecx
fstp st(0)
je 0x52c52f
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52c534
call fcn.0044b7ad
mov eax, dword [edi + 4]
fld qword [eax + esi*8]
jmp 0x52c55b
test ecx, ecx
je 0x52c54f
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
lea ecx, [esi + 1]
cmp ecx, eax
jb 0x52c554
call fcn.0044b7ad
mov edx, dword [edi + 4]
fld qword [edx + esi*8 + 8]
mov ebx, dword [ebp + 0x14]
fst qword [esp + 0x3c]
mov edx, dword [ebx + 4]
test edx, edx
jne 0x52c56d
xor ecx, ecx
jmp 0x52c575
mov ecx, dword [ebx + 8]
sub ecx, edx
sar ecx, 3
test edx, edx
je 0x52c592
mov eax, dword [ebx + 0xc]
sub eax, edx
sar eax, 3
cmp ecx, eax
jae 0x52c592
mov eax, dword [ebx + 8]
fstp qword [eax]
add eax, 8
mov dword [ebx + 8], eax
jmp 0x52c5b6
mov edi, dword [ebx + 8]
fstp st(0)
cmp edx, edi
jbe 0x52c5a0
call fcn.0044b7ad
lea eax, [esp + 0x3c]
push eax
push edi
push ebx
lea ecx, [esp + 0x60]
push ecx
mov ecx, ebx
call fcn.004d87b0
mov edi, dword [ebp + 0x20]
mov eax, dword [esp + 0x1c]
add eax, 1
add esi, 2
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
jb 0x52c3c0
jmp 0x52c5d2
fstp st(0)
mov eax, dword [esp + 0x80]
xor esi, esi
cmp eax, esi
je 0x52c5e8
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x70]
cmp eax, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], esi
je 0x52c60e
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x90]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
cmp eax, esi
je case.0x52b95a.1
push eax
call fcn.004274fc
add esp, 4
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x80]
cmp eax, edi
je 0x52c65c
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x70]
cmp eax, edi
mov dword [esp + 0x80], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edi
je 0x52c682
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x90]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], edi
cmp eax, edi
jmp 0x52c623
mov edi, dword [ebp + 0x1c]
mov ecx, dword [edi + 4]
cmp ecx, ebx
jne 0x52c6a7
xor eax, eax
jmp 0x52c6af
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
mov esi, dword [ebp + 0x10]
mov edx, dword [esi + 4]
shr eax, 1
cmp edx, ebx
jne 0x52c6bf
xor ecx, ecx
jmp 0x52c6c7
mov ecx, dword [esi + 8]
sub ecx, edx
sar ecx, 3
cmp ecx, eax
jae 0x52c6db
cmp edx, ebx
jne 0x52c6d3
xor eax, eax
jmp 0x52c6db
mov eax, dword [esi + 8]
sub eax, edx
sar eax, 3
mov ebx, dword [ebp + 0x24]
mov edx, dword [ebx + 4]
test edx, edx
jne 0x52c6eb
mov dword [esp + 0x14], edx
jmp 0x52c6f7
mov ecx, dword [ebx + 8]
sub ecx, edx
sar ecx, 3
mov dword [esp + 0x14], ecx
test eax, eax
je case.0x52b95a.1
push 0
mov ecx, esi
call fcn.004ae760
push 0
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.004ae760
fld qword [eax]
mov edx, dword [esp + 0x24]
fcomp qword [edx]
push 0
mov ecx, esi
fnstsw ax
test ah, 5
jnp 0x52c72a
mov ecx, edi
call fcn.004ae760
fld qword [eax]
push 1
fstp qword [esp + 0x40]
mov ecx, edi
call fcn.004ae760
fld qword [eax]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x52c776
push 0
mov ecx, esi
call fcn.004ae760
push 0
mov ecx, edi
mov dword [esp + 0x28], eax
call fcn.004ae760
fld qword [eax]
mov eax, dword [esp + 0x24]
fcomp qword [eax]
push 0
fnstsw ax
test ah, 5
jp 0x52c778
mov ecx, esi
jmp 0x52c77a
push 1
mov ecx, edi
call fcn.004ae760
fld qword [eax]
fld qword [ebp + 0x2c]
call fcn.005b90c0
fstp qword [esp + 0x9c]
mov ecx, dword [ebp + 0x20]
mov eax, dword [ecx + 4]
test eax, eax
je 0x52c894
mov ecx, dword [ecx + 8]
sub ecx, eax
sar ecx, 3
je 0x52c894
xor esi, esi
cmp dword [esp + 0x14], esi
jbe case.0x52b95a.1
xor edi, edi
lea ebx, [ebx]
mov ecx, dword [ebp + 0x28]
push esi
call fcn.004ae760
mov ecx, dword [ebp + 0x24]
push esi
mov ebx, eax
call fcn.004ae760
fld qword [ebx]
fsub qword [eax]
mov ecx, dword [ebp + 0x24]
push esi
fmul qword [esp + 0xa0]
fstp qword [esp + 0x68]
call fcn.004ae760
fld qword [esp + 0x64]
mov ecx, dword [ebp + 0x20]
fadd qword [eax]
push edi
fstp qword [esp + 0x40]
call fcn.004ae760
fld qword [eax]
fld qword [esp + 0x3c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
je 0x52c81d
mov ecx, dword [ebp + 0x20]
fstp st(0)
push edi
call fcn.004ae760
fld qword [eax]
mov ebx, dword [ebp + 0x20]
fstp qword [esp + 0x2c]
lea eax, [edi + 1]
push eax
mov ecx, ebx
call fcn.004ae760
fld qword [eax]
fcomp qword [esp + 0x2c]
mov ecx, ebx
fnstsw ax
test ah, 0x41
jne 0x52c85c
push edi
call fcn.004ae760
fld qword [eax]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 5
jp 0x52c857
lea eax, [esp + 0x3c]
jmp 0x52c865
push edi
mov ecx, ebx
jmp 0x52c860
lea eax, [edi + 1]
push eax
call fcn.004ae760
mov ecx, dword [ebp + 0x14]
push eax
call fcn.004d8840
add esi, 1
add edi, 2
cmp esi, dword [esp + 0x14]
jb 0x52c7c0
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
cmp dword [esp + 0x14], esi
jbe case.0x52b95a.1
mov ecx, dword [ebp + 0x28]
push esi
call fcn.004ae760
push esi
mov ecx, ebx
mov edi, eax
call fcn.004ae760
fld qword [edi]
fsub qword [eax]
push esi
mov ecx, ebx
fmul qword [esp + 0xa0]
fstp qword [esp + 0x68]
call fcn.004ae760
fld qword [eax]
mov ecx, dword [ebp + 0x14]
fadd qword [esp + 0x64]
lea edx, [esp + 0x64]
push edx
fstp qword [esp + 0x68]
call fcn.004d8840
add esi, 1
cmp esi, dword [esp + 0x14]
jb 0x52c8a0
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [esp + 0xa8], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb0], ebx
push str.Bounds
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x1e4], 9
call fcn.0048cd50
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x1b4]
push eax
mov byte [esp + 0x1e4], 0xa
call fcn.004b7950
lea ecx, [esp + 0x1b4]
mov edi, eax
mov byte [esp + 0x1e0], 9
call fcn.004b36e0
cmp edi, ebx
je 0x52c9c5
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
cmp eax, 4
jne 0x52c9c5
mov ecx, edi
xor ebx, ebx
call fcn.004b5810
test eax, eax
jbe 0x52c9c5
lea ecx, [ecx]
push ebx
mov ecx, edi
call fcn.004b5830
mov esi, eax
test esi, esi
je 0x52c9c5
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 1
jne 0x52c9c5
mov ecx, esi
call fcn.004b57f0
fstp qword [esp + 0x64]
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0xa8]
call fcn.004d8840
mov ecx, edi
add ebx, 1
call fcn.004b5810
cmp ebx, eax
jb 0x52c980
xor esi, esi
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
push str.Encode
lea ecx, [esp + 0xd8]
mov byte [esp + 0x1e4], 0xb
call fcn.0048cd50
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xd4]
push edx
mov byte [esp + 0x1e4], 0xc
call fcn.004b7950
cmp dword [esp + 0xf0], 0x10
mov edi, eax
mov byte [esp + 0x1e0], 0xb
mov dword [esp + 0xd4], 0x5f1558
jb 0x52ca33
mov eax, dword [esp + 0xdc]
push eax
call fcn.004274fc
add esp, 4
cmp edi, esi
mov dword [esp + 0xf0], 0xf
mov dword [esp + 0xec], esi
mov byte [esp + 0xdc], 0
mov dword [esp + 0xd4], 0x5f13d0
je 0x52cab8
mov edx, dword [edi]
mov eax, dword [edx]
mov ecx, edi
call eax
cmp eax, 4
jne 0x52cab8
mov ecx, edi
xor ebx, ebx
call fcn.004b5810
test eax, eax
jbe 0x52cab8
push ebx
mov ecx, edi
call fcn.004b5830
mov esi, eax
test esi, esi
je 0x52cab8
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 1
jne 0x52cab8
mov ecx, esi
call fcn.004b57f0
fstp qword [esp + 0x64]
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x58]
call fcn.004d8840
mov ecx, edi
add ebx, 1
call fcn.004b5810
cmp ebx, eax
jb 0x52ca76
push str.Functions
lea ecx, [esp + 0xf8]
call fcn.0048cd50
mov ecx, dword [ebp + 8]
lea edx, [esp + 0xf4]
push edx
mov byte [esp + 0x1e4], 0xd
call fcn.004b7950
cmp dword [esp + 0x110], 0x10
mov esi, eax
mov dword [esp + 0x24], esi
mov byte [esp + 0x1e0], 0xb
mov dword [esp + 0xf4], 0x5f1558
jb 0x52cb14
mov eax, dword [esp + 0xfc]
push eax
call fcn.004274fc
add esp, 4
test esi, esi
mov dword [esp + 0x110], 0xf
mov dword [esp + 0x10c], 0
mov byte [esp + 0xfc], 0
mov dword [esp + 0xf4], 0x5f13d0
je 0x52cf7b
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
cmp eax, 4
jne 0x52cf7b
mov ecx, esi
call fcn.004b5810
test eax, eax
je 0x52cf7b
mov edi, dword [ebp + 0x1c]
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x52cf7b
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 2
jb 0x52cf7b
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 4]
test eax, eax
je 0x52cf7b
mov ecx, dword [ebx + 8]
sub ecx, eax
sar ecx, 3
je 0x52cf7b
mov ecx, esi
mov dword [esp + 0x50], 0
call fcn.004b5810
mov ecx, dword [esp + 0xa8]
test ecx, ecx
mov edx, dword [esp + 0xac]
mov esi, eax
mov dword [esp + 0x14], eax
jne 0x52cbcb
xor eax, eax
jmp 0x52cbd2
mov eax, edx
sub eax, ecx
sar eax, 3
add eax, 1
cmp esi, eax
jbe 0x52cbed
test ecx, ecx
jne 0x52cbe1
xor edx, edx
jmp 0x52cbe6
sub edx, ecx
sar edx, 3
lea esi, [edx + 1]
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x58]
test edx, edx
mov ecx, dword [esp + 0x5c]
jne 0x52cbfd
xor eax, eax
jmp 0x52cc04
mov eax, ecx
sub eax, edx
sar eax, 3
shr eax, 1
cmp esi, eax
jbe 0x52cc1d
test edx, edx
jne 0x52cc12
xor ecx, ecx
jmp 0x52cc17
sub ecx, edx
sar ecx, 3
shr ecx, 1
mov dword [esp + 0x14], ecx
push 0
mov ecx, ebx
call fcn.004ae760
push 0
mov ecx, edi
mov esi, eax
call fcn.004ae760
fld qword [eax]
fcomp qword [esi]
push 0
mov ecx, ebx
fnstsw ax
test ah, 5
jnp 0x52cc42
mov ecx, edi
call fcn.004ae760
fld qword [eax]
push 1
fstp qword [esp + 0x40]
mov ecx, edi
call fcn.004ae760
fld qword [eax]
fcomp qword [esp + 0x3c]
fnstsw ax
test ah, 0x41
jne 0x52cc88
push 0
mov ecx, ebx
call fcn.004ae760
push 0
mov ecx, edi
mov esi, eax
call fcn.004ae760
fld qword [eax]
fcomp qword [esi]
push 0
fnstsw ax
test ah, 5
jp 0x52cc8a
mov ecx, ebx
jmp 0x52cc8c
push 1
mov ecx, edi
call fcn.004ae760
fld qword [eax]
xor esi, esi
fstp qword [esp + 0x1c]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
push esi
mov ecx, edi
mov byte [esp + 0x1e4], 0xe
call fcn.004ae760
push eax
lea ecx, [esp + 0x30]
call fcn.004d8840
mov ebx, dword [esp + 0x14]
add ebx, 0xffffffff
je 0x52cd0b
jmp 0x52ccd0
mov ecx, dword [esp + 0xa8]
test ecx, ecx
je 0x52cceb
mov eax, dword [esp + 0xac]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52ccf7
call fcn.0044b7ad
mov ecx, dword [esp + 0xa8]
lea edx, [ecx + esi*8]
push edx
lea ecx, [esp + 0x30]
call fcn.004d8840
add esi, 1
cmp esi, ebx
jb 0x52ccd0
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x52cd1f
mov eax, dword [edi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 1
ja 0x52cd24
call fcn.0044b7ad
mov eax, dword [edi + 4]
add eax, 8
push eax
lea ecx, [esp + 0x30]
call fcn.004d8840
xor esi, esi
cmp dword [esp + 0x14], esi
jbe 0x52ce07
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x14]
cmp esi, ebx
jne 0x52cda4
test ecx, ecx
je 0x52cd5d
mov eax, dword [esp + 0x34]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52cd66
call fcn.0044b7ad
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8]
fcomp qword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x52cdfc
test ecx, ecx
je 0x52cd8c
mov eax, dword [esp + 0x34]
sub eax, ecx
sar eax, 3
lea edx, [esi + 1]
cmp edx, eax
jb 0x52cd95
call fcn.0044b7ad
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8 + 8]
fcomp qword [esp + 0x1c]
fnstsw ax
test ah, 1
jmp 0x52cdf6
test ecx, ecx
je 0x52cdb5
mov eax, dword [esp + 0x34]
sub eax, ecx
sar eax, 3
cmp esi, eax
jb 0x52cdbe
call fcn.0044b7ad
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8]
fcomp qword [esp + 0x1c]
fnstsw ax
test ah, 0x41
jp 0x52cdfc
test ecx, ecx
je 0x52cde0
mov eax, dword [esp + 0x34]
sub eax, ecx
sar eax, 3
lea edx, [esi + 1]
cmp edx, eax
jb 0x52cde9
call fcn.0044b7ad
mov ecx, dword [esp + 0x30]
fld qword [ecx + esi*8 + 8]
fcomp qword [esp + 0x1c]
fnstsw ax
test ah, 0x41
je 0x52cee4
add esi, 1
cmp esi, edi
jb 0x52cd48
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
push ebx
call fcn.004b5830
test eax, eax
mov dword [esp + 0x9c], eax
je 0x52cf6a
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x58]
cmp eax, ecx
lea esi, [ebx + ebx]
mov byte [esp + 0x1e0], 0xf
lea edi, [esi + 1]
je 0x52ce57
mov edx, dword [esp + 0x5c]
mov ecx, edx
sub ecx, eax
sar ecx, 3
cmp edi, ecx
jb 0x52ce64
call fcn.0044b7ad
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
test eax, eax
lea ecx, [eax + edi*8]
mov dword [esp + 0x24], ecx
je 0x52ce78
sub edx, eax
sar edx, 3
cmp esi, edx
jb 0x52ce81
call fcn.0044b7ad
mov eax, dword [esp + 0x58]
lea edi, [eax + esi*8]
mov eax, dword [esp + 0x30]
test eax, eax
lea esi, [ebx + 1]
je 0x52ce9e
mov edx, dword [esp + 0x34]
mov ecx, edx
sub ecx, eax
sar ecx, 3
cmp esi, ecx
jb 0x52ceab
call fcn.0044b7ad
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
test eax, eax
lea esi, [eax + esi*8]
je 0x52cebb
sub edx, eax
sar edx, 3
cmp ebx, edx
jb 0x52cec4
call fcn.0044b7ad
mov eax, dword [esp + 0x30]
fld qword [eax + ebx*8]
fld qword [edi]
fld qword [esi]
fsub st(2)
fld st(0)
fldz
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x52ceeb
fstp st(2)
fstp st(2)
fstp st(1)
jmp 0x52cf01
mov ebx, esi
jmp 0x52ce0b
mov edx, dword [esp + 0x24]
fstp st(0)
fld qword [edx]
fsub st(2)
fld qword [esp + 0x1c]
fsubrp st(4)
fmulp st(3)
fdivp st(2)
faddp st(1)
lea eax, [esp + 0x64]
fstp qword [esp + 0x64]
push eax
lea ecx, [esp + 0x40]
call fcn.004d8840
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x9c]
push ecx
lea edx, [esp + 0x40]
push edx
push eax
call fcn.0052d020
mov eax, dword [esp + 0x4c]
xor esi, esi
add esp, 0xc
cmp eax, esi
je 0x52cf3f
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0x30]
cmp eax, esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x52cf5c
push eax
call fcn.004274fc
add esp, 4
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
jmp 0x52cf7d
mov eax, dword [esp + 0x30]
test eax, eax
je 0x52cf7b
push eax
call fcn.004274fc
add esp, 4
xor esi, esi
mov eax, dword [esp + 0x58]
cmp eax, esi
je 0x52cf8e
push eax
call fcn.004274fc
add esp, 4
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
jmp 0x52c621
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 4]
test ecx, ecx
je case.0x52b95a.1
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 3
cmp eax, 1
jne case.0x52b95a.1
mov edi, dword [esp + 0x14]
test edi, edi
jbe case.0x52b95a.1
mov ebx, dword [ebp + 0x14]
mov eax, dword [esi + 4]
test eax, eax
je 0x52cfd9
mov ecx, dword [esi + 8]
sub ecx, eax
sar ecx, 3
jne 0x52cfde
call fcn.0044b7ad
mov edx, dword [esi + 4]
push edx
mov ecx, ebx
call fcn.004d8840
sub edi, 1
jne 0x52cfc8
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret