Function at 0x54d0d0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x14
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [esp + 0x24]
mov ecx, edi
mov edx, dword [ecx]
lea eax, [esi + 0xd4]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov ecx, dword [ecx + 8]
mov dword [eax + 8], ecx
push edi
lea ecx, [esi + 0x20]
call fcn.0054e1b0
push edi
lea ecx, [esi + 0x2c]
call fcn.0054c710
mov ax, word [0x21fddc0]
cmp ax, 0x2a30
mov dword [0x70bb00], 0x3f666666
mov dword [0x70bafc], 0x3f666666
mov dword [0x70baf8], 0x3f666666
mov dword [0x70baf4], 0x3f0ccccd
mov dword [0x70baf0], 0x3f0ccccd
mov dword [0x70baec], 0x3f266666
jbe 0x54d20d
cmp ax, 0x3138
jae 0x54d2ff
movzx edx, ax
mov eax, 0x3138
sub eax, edx
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x54d178
fadd dword [0x6bb60c]
fmul dword [0x6c2970]
fstp dword [esp + 0x14]
fld dword [0x70bae8]
fadd dword [esp + 0x14]
fcom dword [0x70bae4]
fnstsw ax
test ah, 0x41
jne 0x54d1a1
fstp st(0)
fld dword [0x70bae4]
fld dword [esp + 0x14]
fadd dword [0x6c9800]
fst dword [esp + 0xc]
fld dword [esp + 0xc]
fcomp dword [0x6bc868]
fnstsw ax
test ah, 0x41
jne 0x54d1c8
mov dword [esp + 0xc], 0x3f666666
fst dword [esp + 0x10]
fcomp dword [0x6bc868]
fnstsw ax
test ah, 0x41
jne 0x54d1e1
mov dword [esp + 0x10], 0x3f666666
fld dword [esp + 0x14]
fadd dword [str.ff_]
fst dword [esp + 0x14]
fcomp dword [0x6bc868]
fnstsw ax
test ah, 0x41
jne 0x54d31d
mov dword [esp + 0x14], 0x3f666666
jmp 0x54d31d
cmp ax, 0x3138
jae 0x54d2ff
cmp ax, 0x708
jbe 0x54d2ff
cmp ax, 0xe10
jae 0x54d2df
movzx ecx, ax
mov edx, 0xe10
sub edx, ecx
test edx, edx
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
jge 0x54d247
fadd dword [0x6bb60c]
fmul dword [0x6c2970]
fld dword [0x6bc4dc]
fsub st(1)
fstp dword [esp + 0x14]
fstp st(0)
fld dword [esp + 0x14]
fadd dword [0x70bae8]
fcom dword [0x70bae4]
fnstsw ax
test ah, 0x41
jne 0x54d27a
fstp st(0)
fld dword [0x70bae4]
fld dword [esp + 0x14]
fadd dword [0x6c9800]
fst dword [esp + 0xc]
fld dword [esp + 0xc]
fcomp dword [0x6bc868]
fnstsw ax
test ah, 0x41
jne 0x54d2a1
mov dword [esp + 0xc], 0x3f666666
fst dword [esp + 0x10]
fcomp dword [0x6bc868]
fnstsw ax
test ah, 0x41
jne 0x54d2ba
mov dword [esp + 0x10], 0x3f666666
fld dword [esp + 0x14]
fadd dword [str.ff_]
fst dword [esp + 0x14]
fcomp dword [0x6bc868]
fnstsw ax
test ah, 0x41
jne 0x54d31d
mov dword [esp + 0x14], 0x3f666666
jmp 0x54d31d
fld dword [0x70bae4]
mov dword [esp + 0xc], 0x3f666666
mov dword [esp + 0x10], 0x3f666666
mov dword [esp + 0x14], 0x3f666666
jmp 0x54d31d
fld dword [0x70bae8]
mov dword [esp + 0xc], 0x3f0ccccd
mov dword [esp + 0x10], 0x3f0ccccd
mov dword [esp + 0x14], 0x3f266666
mov eax, dword [0x85d3ac]
xor ebx, ebx
cmp eax, ebx
jne 0x54d348
fstp st(0)
mov dword [esp + 0xc], 0x3f0ccccd
fld dword [0x70bae8]
mov dword [esp + 0x10], 0x3f0ccccd
mov dword [esp + 0x14], 0x3f266666
fld dword [0x220e064]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 0x41
jp 0x54d420
cmp byte [0x71d0f9], bl
jne 0x54d420
mov dword [0x22097c8], 0x3ec2c2bd
fstp st(0)
mov dword [0x2209744], 0x2608289
mov dword [0x22097d8], 0x3ec2c2bd
mov dword [0x22097dc], 0x3f028284
mov dword [0x22097cc], 0x3f028284
mov dword [0x22097e0], 0x3f09898b
mov dword [0x22097d0], 0x3f09898b
mov dword [esi + 4], ebx
mov dword [esi + 0xe0], 0x3c23d70a
fld dword [0x22097c8]
fmul dword [0x6bc8c4]
call fcn.005cd414
fld dword [0x22097cc]
fmul dword [0x6bc8c4]
mov edi, eax
and edi, 0xff
or edi, 0x200
shl edi, 8
call fcn.005cd414
fld dword [0x22097d0]
fmul dword [0x6bc8c4]
and eax, 0xff
or edi, eax
shl edi, 8
call fcn.005cd414
and eax, 0xff
or edi, eax
mov dword [esi + 0xe4], edi
jmp 0x54d56a
fld dword [esp + 0x14]
mov eax, dword [esp + 0xc]
fld dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
fcomp dword [0x6bc860]
mov edx, dword [esp + 0x14]
mov dword [0x22097c8], eax
mov dword [esp + 0x18], eax
mov dword [0x22097d8], 0x3f800000
fnstsw ax
mov dword [0x22097cc], ecx
mov dword [0x22097dc], 0x3f800000
test ah, 0x41
mov dword [0x22097d0], edx
mov dword [0x22097e0], 0x3f800000
mov dword [esp + 0x1c], ecx
jne 0x54d480
mov dword [esp + 0x18], 0x3f000000
fld dword [esp + 0x10]
fcomp dword [0x6bc860]
fnstsw ax
test ah, 0x41
jne 0x54d499
mov dword [esp + 0x1c], 0x3f000000
fld dword [esp + 0x14]
fcomp dword [0x6bc860]
fnstsw ax
test ah, 0x41
jne 0x54d4b2
fstp st(0)
fld dword [0x6bc860]
fld st(1)
push ebp
fmul dword [0x6bc8c4]
call fcn.005cd414
fld dword [esp + 0x1c]
fmul dword [0x6bc8c4]
mov edi, eax
shl edi, 8
call fcn.005cd414
fld dword [esp + 0x20]
fmul dword [0x6bc8c4]
mov ebp, eax
and ebp, 0xff
or ebp, edi
shl ebp, 8
call fcn.005cd414
fmul dword [0x6bc8c4]
and eax, 0xff
or ebp, eax
shl ebp, 8
call fcn.005cd414
and eax, 0xff
or ebp, eax
mov dword [0x2209744], ebp
fstp dword [esi + 0xe0]
fld dword [esp + 0x10]
fmul dword [0x6bc8c4]
call fcn.005cd414
fld dword [esp + 0x14]
fmul dword [0x6bc8c4]
mov ebp, eax
and ebp, 0xff
or ebp, edi
shl ebp, 8
call fcn.005cd414
fld dword [esp + 0x18]
fmul dword [0x6bc8c4]
and eax, 0xff
or ebp, eax
shl ebp, 8
call fcn.005cd414
and eax, 0xff
or ebp, eax
mov dword [esi + 0xe4], ebp
pop ebp
mov ax, word [0x21fddc0]
cmp ax, 0x3138
ja 0x54d585
cmp ax, 0x7d0
jb 0x54d585
mov dword [esi + 4], 1
jmp 0x54d588
mov dword [esi + 4], ebx
fld dword [0x6bb5fc]
mov edi, 0x50ffffff
fld dword [0x70baa0]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54d73c
mov eax, dword [esi + 8]
mov edx, dword [eax]
push 0x2000
lea ecx, [esp + 0x28]
push ecx
push ebx
push ebx
push eax
call dword [edx + 0x2c]
fld dword [0x70ba98]
fmul dword [0x719a54]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x3c], edi
mov eax, dword [esp + 0x24]
fld st(0)
fadd dword [eax + 0x40]
fstp dword [eax + 0x40]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x40]
fcomp dword [0x70bac0]
fnstsw ax
test ah, 0x41
jne 0x54d5fe
fld dword [ecx + 0x40]
fsub dword [0x70bac0]
fstp dword [ecx + 0x40]
mov ecx, dword [esp + 0x24]
fld st(0)
fadd dword [ecx + 0x44]
fstp dword [ecx + 0x44]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x44]
fcomp dword [0x70bac0]
fnstsw ax
test ah, 0x41
jne 0x54d62a
fld dword [ecx + 0x44]
fsub dword [0x70bac0]
fstp dword [ecx + 0x44]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x54], edi
fld st(0)
mov eax, dword [esp + 0x24]
fadd dword [eax + 0x58]
fstp dword [eax + 0x58]
mov ecx, dword [esp + 0x24]
fld dword [0x70bac0]
fadd st(0), st(0)
fcom dword [ecx + 0x58]
fnstsw ax
test ah, 5
jp 0x54d65f
fld dword [ecx + 0x58]
fsub dword [0x70bac0]
fstp dword [ecx + 0x58]
mov ecx, dword [esp + 0x24]
fld st(1)
fadd dword [ecx + 0x5c]
fstp dword [ecx + 0x5c]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x5c]
fcomp dword [0x70bac0]
fnstsw ax
test ah, 0x41
jne 0x54d68b
fld dword [ecx + 0x5c]
fsub dword [0x70bac0]
fstp dword [ecx + 0x5c]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], edi
fld st(1)
mov eax, dword [esp + 0x24]
fadd dword [eax + 0x10]
fstp dword [eax + 0x10]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x10]
fcomp dword [0x70bac0]
fnstsw ax
test ah, 0x41
jne 0x54d6be
fld dword [ecx + 0x10]
fsub dword [0x70bac0]
fstp dword [ecx + 0x10]
mov ecx, dword [esp + 0x24]
fld st(1)
fadd dword [ecx + 0x14]
fstp dword [ecx + 0x14]
mov ecx, dword [esp + 0x24]
fcom dword [ecx + 0x14]
fnstsw ax
test ah, 5
jp 0x54d6e4
fld dword [ecx + 0x14]
fsub dword [0x70bac0]
fstp dword [ecx + 0x14]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x24], edi
fld st(1)
mov eax, dword [esp + 0x24]
fadd dword [eax + 0x28]
fstp dword [eax + 0x28]
mov ecx, dword [esp + 0x24]
fcom dword [ecx + 0x28]
fnstsw ax
test ah, 5
jp 0x54d711
fld dword [ecx + 0x28]
fsub dword [0x70bac0]
fstp dword [ecx + 0x28]
mov ecx, dword [esp + 0x24]
fxch st(1)
fadd dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
mov ecx, dword [esp + 0x24]
fcomp dword [ecx + 0x2c]
fnstsw ax
test ah, 5
jp 0x54d733
fld dword [ecx + 0x2c]
fsub dword [0x70bac0]
fstp dword [ecx + 0x2c]
mov eax, dword [esi + 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
fld dword [0x6bb5fc]
fld dword [0x70baa4]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54d8eb
mov eax, dword [esi + 0xc]
mov edx, dword [eax]
push 0x2000
lea ecx, [esp + 0x28]
push ecx
push ebx
push ebx
push eax
call dword [edx + 0x2c]
fld dword [0x70ba9c]
fmul dword [0x719a54]
mov edx, dword [esp + 0x24]
mov dword [edx + 0x3c], edi
mov eax, dword [esp + 0x24]
fld st(0)
fadd dword [eax + 0x40]
fstp dword [eax + 0x40]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x40]
fcomp dword [0x70bac4]
fnstsw ax
test ah, 0x41
jne 0x54d7ad
fld dword [ecx + 0x40]
fsub dword [0x70bac4]
fstp dword [ecx + 0x40]
mov ecx, dword [esp + 0x24]
fld st(0)
fadd dword [ecx + 0x44]
fstp dword [ecx + 0x44]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x44]
fcomp dword [0x70bac4]
fnstsw ax
test ah, 0x41
jne 0x54d7d9
fld dword [ecx + 0x44]
fsub dword [0x70bac4]
fstp dword [ecx + 0x44]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x54], edi
fld st(0)
mov eax, dword [esp + 0x24]
fadd dword [eax + 0x58]
fstp dword [eax + 0x58]
mov ecx, dword [esp + 0x24]
fld dword [0x70bac4]
fadd st(0), st(0)
fcom dword [ecx + 0x58]
fnstsw ax
test ah, 5
jp 0x54d80e
fld dword [ecx + 0x58]
fsub dword [0x70bac4]
fstp dword [ecx + 0x58]
mov ecx, dword [esp + 0x24]
fld st(1)
fadd dword [ecx + 0x5c]
fstp dword [ecx + 0x5c]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x5c]
fcomp dword [0x70bac4]
fnstsw ax
test ah, 0x41
jne 0x54d83a
fld dword [ecx + 0x5c]
fsub dword [0x70bac4]
fstp dword [ecx + 0x5c]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0xc], edi
fld st(1)
mov eax, dword [esp + 0x24]
fadd dword [eax + 0x10]
fstp dword [eax + 0x10]
mov ecx, dword [esp + 0x24]
fld dword [ecx + 0x10]
fcomp dword [0x70bac4]
fnstsw ax
test ah, 0x41
jne 0x54d86d
fld dword [ecx + 0x10]
fsub dword [0x70bac4]
fstp dword [ecx + 0x10]
mov ecx, dword [esp + 0x24]
fld st(1)
fadd dword [ecx + 0x14]
fstp dword [ecx + 0x14]
mov ecx, dword [esp + 0x24]
fcom dword [ecx + 0x14]
fnstsw ax
test ah, 5
jp 0x54d893
fld dword [ecx + 0x14]
fsub dword [0x70bac4]
fstp dword [ecx + 0x14]
mov ecx, dword [esp + 0x24]
mov dword [ecx + 0x24], edi
fld st(1)
mov eax, dword [esp + 0x24]
fadd dword [eax + 0x28]
fstp dword [eax + 0x28]
mov ecx, dword [esp + 0x24]
fcom dword [ecx + 0x28]
fnstsw ax
test ah, 5
jp 0x54d8c0
fld dword [ecx + 0x28]
fsub dword [0x70bac4]
fstp dword [ecx + 0x28]
mov ecx, dword [esp + 0x24]
fxch st(1)
fadd dword [ecx + 0x2c]
fstp dword [ecx + 0x2c]
mov ecx, dword [esp + 0x24]
fcomp dword [ecx + 0x2c]
fnstsw ax
test ah, 5
jp 0x54d8e2
fld dword [ecx + 0x2c]
fsub dword [0x70bac4]
fstp dword [ecx + 0x2c]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x30]
mov ecx, dword [0x7191d4]
mov edx, dword [ecx]
push 0x25
call dword [edx + 4]
test al, al
je 0x54dcf2
cmp dword [esi + 0x28], ebx
jne 0x54db08
cmp dword [esi + 0x34], ebx
jne 0x54db08
fld dword [esi + 0xf4]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 1
jne 0x54d93d
fld dword [0x719a54]
fmul dword [0x6be7fc]
fsubr dword [esi + 0xf4]
fstp dword [esi + 0xf4]
fld dword [esi + 0xf4]
fcomp dword [0x6bb5fc]
fnstsw ax
test ah, 5
jp 0x54d956
mov dword [esi + 0xf4], ebx
fld dword [esi + 0xf8]
fcomp dword [0x719884]
fnstsw ax
test ah, 5
jp 0x54d981
fld dword [0x719a54]
fmul dword [0x6bc9c8]
fadd dword [esi + 0xf8]
fstp dword [esi + 0xf8]
fld dword [esi + 0xf8]
fcomp dword [0x719884]
fnstsw ax
test ah, 1
jne 0x54d99f
mov eax, dword [0x719884]
mov dword [esi + 0xf8], eax
fld dword [esi + 0xfc]
fsub dword [0x6c1280]
fmul dword [0x719a54]
fmul dword [0x6be7fc]
fstp dword [esp + 0x14]
fld dword [esi + 0x100]
fsub dword [0x6c1280]
fmul dword [0x719a54]
fmul dword [0x6be7fc]
fstp dword [esp + 0x10]
fld dword [esi + 0x104]
fsub dword [0x6c1280]
fmul dword [0x719a54]
fmul dword [0x6be7fc]
fld dword [0x719a54]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 0x41
jne 0x54da1a
fstp st(0)
mov dword [esp + 0x14], 0x3dcccccd
fld dword [0x6bc8b4]
mov dword [esp + 0x10], 0x3dcccccd
fld dword [esi + 0xfc]
call fcn.005cd414
fld dword [esi + 0x10c]
mov bl, al
call fcn.005cd414
cmp al, bl
jne 0x54da3e
mov dword [esp + 0x14], 0
fld dword [esi + 0x110]
call fcn.005cd414
fld dword [esi + 0x100]
mov bl, al
call fcn.005cd414
cmp bl, al
jne 0x54da62
mov dword [esp + 0x10], 0
fld dword [esi + 0x114]
call fcn.005cd414
fld dword [esi + 0x104]
mov bl, al
call fcn.005cd414
cmp bl, al
jne 0x54da86
fstp st(0)
fld dword [0x6bb5fc]
fld dword [esp + 0x14]
fadd dword [esi + 0x10c]
fst dword [esp + 0x1c]
fstp dword [esi + 0x10c]
fld dword [esp + 0x10]
fadd dword [esi + 0x110]
fst dword [esp + 0x18]
fstp dword [esi + 0x110]
fadd dword [esi + 0x114]
fst dword [esi + 0x114]
fld dword [esp + 0x1c]
call fcn.005cd414
fld dword [esp + 0x18]
movzx edi, al
or edi, 0xffffff00
shl edi, 8
call fcn.005cd414
movzx ecx, al
or edi, ecx
shl edi, 8
call fcn.005cd414
movzx edx, al
mov eax, dword [0x2209400]
or edi, edx
push edi
push 0x22
mov dword [0x2209748], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
xor ebx, ebx
jmp 0x54dcd3
fld dword [esi + 0xf4]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 5
jp 0x54db33
fld dword [0x719a54]
fmul dword [0x6be7fc]
fadd dword [esi + 0xf4]
fstp dword [esi + 0xf4]
fld dword [esi + 0xf4]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 1
jne 0x54db50
mov dword [esi + 0xf4], 0x3f800000
fld dword [esi + 0xf8]
fcomp dword [0x6bc8b0]
fnstsw ax
test ah, 0x41
jne 0x54db7b
fld dword [0x719a54]
fmul dword [0x6bc9c8]
fsubr dword [esi + 0xf8]
fstp dword [esi + 0xf8]
fld dword [esi + 0xf8]
fcomp dword [0x6bc8b0]
fnstsw ax
test ah, 0x41
jp 0x54db98
mov dword [esi + 0xf8], 0x41a00000
fld dword [0x6c1280]
fsub dword [esi + 0xfc]
fmul dword [0x719a54]
fmul dword [0x6be7fc]
fstp dword [esp + 0x14]
fld dword [0x6c1280]
fsub dword [esi + 0x100]
fmul dword [0x719a54]
fmul dword [0x6be7fc]
fstp dword [esp + 0x10]
fld dword [0x6c1280]
fsub dword [esi + 0x104]
fmul dword [0x719a54]
fmul dword [0x6be7fc]
fld dword [0x719a54]
fcomp dword [0x6bc4dc]
fnstsw ax
test ah, 0x41
jne 0x54dc13
fstp st(0)
mov dword [esp + 0x14], 0x3dcccccd
fld dword [0x6bc8b4]
mov dword [esp + 0x10], 0x3dcccccd
fld dword [esi + 0x10c]
call fcn.005cd414
cmp al, 0x4b
jne 0x54dc2a
mov dword [esp + 0x14], 0
fld dword [esi + 0x110]
call fcn.005cd414
cmp al, 0x4b
jne 0x54dc41
mov dword [esp + 0x10], 0
fld dword [esi + 0x114]
call fcn.005cd414
cmp al, 0x4b
jne 0x54dc58
fstp st(0)
fld dword [0x6bb5fc]
fld dword [esp + 0x14]
fadd dword [esi + 0x10c]
fst dword [esp + 0x1c]
fstp dword [esi + 0x10c]
fld dword [esp + 0x10]
fadd dword [esi + 0x110]
fst dword [esp + 0x18]
fstp dword [esi + 0x110]
fadd dword [esi + 0x114]
fst dword [esi + 0x114]
fld dword [esp + 0x1c]
call fcn.005cd414
fld dword [esp + 0x18]
movzx edi, al
or edi, 0xffffff00
shl edi, 8
call fcn.005cd414
movzx edx, al
or edi, edx
shl edi, 8
call fcn.005cd414
movzx eax, al
or edi, eax
mov eax, dword [0x2209400]
push edi
push 0x22
mov dword [0x2209748], edi
mov ecx, dword [eax]
push eax
call dword [ecx + 0xe4]
mov eax, dword [esi + 0x14]
add esi, 0x14
cmp eax, ebx
jne 0x54dcf2
mov edx, dword [0x2209400]
push esi
push 0x6c97e4
push edx
call fcn.0040d480
add esp, 0xc
pop edi
pop esi
pop ebx
add esp, 0x14
ret 4