Function at 0x4cae10
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x56ee63
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x47c
mov eax, dword [esp + 0x49c]
mov edx, dword [esp + 0x494]
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x4a4]
push edi
push eax
mov eax, dword [esp + 0x4a4]
push ecx
push edx
push eax
mov ecx, esi
mov dword [esp + 0x24], esi
call fcn.004ca460
mov edx, dword [esp + 0x4b0]
mov eax, 0xd
xor ecx, ecx
mov dword [esi + 0xdb8], eax
mov dword [esi + 0xdc8], eax
mov dword [esi], 0x5946ac
mov dword [esi + 0x1c], edx
mov dword [esi + 0x5a8], ecx
mov esi, dword [esi + 0x14]
mov dword [esp + 0x494], ecx
cmp esi, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x5c], eax
je 0x4caf8b
push 8
call fcn.0055d252
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x494], 1
je 0x4caec9
push esi
mov ecx, eax
call fcn.004c4450
mov edi, eax
jmp 0x4caecb
xor edi, edi
mov eax, dword [edi]
xor esi, esi
test eax, eax
mov byte [esp + 0x494], 0
jle 0x4caef5
mov eax, dword [edi + 4]
cmp byte [eax + esi], 0x20
jne 0x4caef0
push 1
push esi
mov ecx, edi
call fcn.004c5480
jmp 0x4caef1
inc esi
cmp esi, dword [edi]
jl 0x4caedb
xor ebp, ebp
mov ebx, 0x33
lea eax, [ebx + ebp]
cdq
sub eax, edx
mov esi, eax
sar esi, 1
mov ecx, dword [esi*8 + 0x5d26c0]
push ecx
mov ecx, edi
call fcn.004c56a0
test eax, eax
jl 0x4caf1d
mov ebp, esi
jmp 0x4caf1f
mov ebx, esi
mov edx, ebx
sub edx, ebp
cmp edx, 1
jg 0x4caefc
mov eax, dword [ebp*8 + 0x5d26c0]
mov ecx, edi
push eax
call fcn.004c56a0
test eax, eax
jne 0x4caf77
push 8
call fcn.0055d252
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x494], 2
je 0x4caf66
mov ecx, dword [ebp*8 + 0x5d26c4]
push ecx
mov ecx, eax
call fcn.004c4300
jmp 0x4caf68
xor eax, eax
mov edx, dword [esp + 0x14]
mov byte [esp + 0x494], 0
mov dword [edx + 0x14], eax
test edi, edi
je 0x4caf8b
mov ecx, edi
call fcn.004c44b0
push edi
call fcn.0055d27b
add esp, 4
mov ebx, dword [esp + 0x14]
xor ecx, ecx
xor ebp, ebp
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x1c], ebp
cmp eax, ecx
je 0x4cafc6
xor edi, edi
mov esi, 0x5e5298
mov eax, dword [esi]
mov ecx, dword [ebx + 0x14]
push eax
call fcn.004c56a0
test eax, eax
je 0x4cb156
add esi, 0x18
inc edi
cmp esi, 0x5e53e8
jl 0x4cafa5
xor ecx, ecx
lea edi, [ebx + 0x68]
mov eax, 0x66666666
mov dword [ebx + 0x90], eax
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x80], ecx
mov dword [ebx + 0x78], ecx
mov dword [ebx + 0x70], ecx
mov dword [edi], ecx
mov dword [ebx + 0x94], 0x3fee6666
mov dword [ebx + 0x9c], 0xbfd66666
mov dword [ebx + 0x84], ecx
mov dword [ebx + 0x7c], ecx
mov dword [ebx + 0x74], ecx
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x4b4]
mov eax, dword [esp + 0x49c]
push edx
push eax
mov ecx, ebx
call fcn.004ca5a0
xor esi, esi
cmp ebp, esi
je 0x4cb0bb
cmp dword [ebx + 0x28], esi
jge 0x4cb0bb
movsx ecx, word [ebp + 8]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x90]
movsx edx, word [ebp + 0xa]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x98]
movsx eax, word [ebp + 0xc]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [edi]
movsx ecx, word [ebp + 0xe]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x70]
movsx edx, word [ebp + 0x10]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x78]
movsx eax, word [ebp + 0x12]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x80]
mov ecx, ebx
call fcn.004cacd0
lea ebp, [ebx + 0x38]
lea ecx, [esp + 0x30]
mov eax, 0x3ff00000
push ecx
mov ecx, dword [esp + 0x4b8]
mov dword [ebx + 0x50], esi
mov dword [ebp], esi
mov dword [ebx + 0x60], esi
mov dword [ebx + 0x58], esi
mov dword [ebx + 0x48], esi
mov dword [ebx + 0x40], esi
push 0x5d2eec
mov dword [ebx + 0x54], eax
mov dword [ebp + 4], eax
mov dword [ebx + 0x64], esi
mov dword [ebx + 0x5c], esi
mov dword [ebx + 0x4c], esi
mov dword [ebx + 0x44], esi
call fcn.004b2a50
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 6
sete dl
mov eax, edx
cmp eax, esi
je 0x4cb219
xor esi, esi
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0xc]
jge 0x4cb217
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004bc920
mov eax, dword [eax]
cmp eax, 1
je 0x4cb142
cmp eax, 2
jne 0x4cb201
cmp dword [esp + 0x40], 1
jne 0x4cb1fa
fild dword [esp + 0x48]
jmp 0x4cb1fe
lea ecx, [edi + edi*2]
lea ebp, [ecx*8 + 0x5e5298]
test ebp, ebp
mov dword [esp + 0x1c], ebp
je 0x4cafc4
movsx edx, word [ebp + 8]
mov dword [esp + 0x10], edx
lea edi, [ebx + 0x68]
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x90]
movsx eax, word [ebp + 0xa]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x98]
movsx ecx, word [ebp + 0xc]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [edi]
movsx edx, word [ebp + 0xe]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x70]
movsx eax, word [ebp + 0x10]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x78]
movsx ecx, word [ebp + 0x12]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x594670]
fstp qword [ebx + 0x80]
jmp 0x4cb00b
fld qword [esp + 0x48]
fstp qword [ebp]
lea ecx, [esp + 0x40]
call fcn.004b24e0
inc esi
add ebp, 8
cmp esi, 6
jl 0x4cb11a
xor esi, esi
lea ecx, [esp + 0x30]
call fcn.004b24e0
mov eax, dword [ebx + 0x1c]
mov ebp, 4
cmp eax, ebp
jne 0x4cb311
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0x4b8]
push 0x5d2cdc
call fcn.004b2a50
mov ecx, dword [eax]
xor edx, edx
cmp ecx, 6
sete dl
mov eax, edx
cmp eax, esi
je 0x4cb29c
mov ecx, dword [esp + 0x38]
cmp esi, dword [ecx + 0xc]
jge 0x4cb29c
lea eax, [esp + 0x40]
push eax
push esi
call fcn.004bc920
mov eax, dword [eax]
cmp eax, 1
je 0x4cb278
cmp eax, 2
jne 0x4cb28b
cmp dword [esp + 0x40], 1
jne 0x4cb285
fild dword [esp + 0x48]
jmp 0x4cb289
fld qword [esp + 0x48]
fstp qword [edi]
lea ecx, [esp + 0x40]
call fcn.004b24e0
inc esi
add edi, 8
cmp esi, ebp
jl 0x4cb258
lea ecx, [esp + 0x30]
call fcn.004b24e0
mov edi, dword [esp + 0x4b4]
lea esi, [ebx + 0xdb8]
push esi
push 0x5d2ee0
mov ecx, edi
call fcn.004b2a50
mov edx, dword [eax]
xor ecx, ecx
cmp edx, 7
sete cl
mov eax, ecx
test eax, eax
jne 0x4cb2e5
push 0x5d2ea8
push 0xffffffffffffffff
call fcn.004cda10
add esp, 8
mov ecx, esi
call fcn.004b24e0
lea esi, [ebx + 0xdc8]
mov ecx, edi
push esi
push 0x5ca01c
call fcn.004b2a50
mov edi, dword [eax]
xor edx, edx
cmp edi, 7
sete dl
mov eax, edx
test eax, eax
jne 0x4cb30f
mov ecx, esi
call fcn.004b24e0
xor esi, esi
mov ecx, dword [esp + 0x4b4]
lea eax, [esp + 0x30]
push eax
push 0x5d2e9c
mov dword [ebx + 0x5ac], esi
mov dword [ebx + 0x5b0], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x2c], esi
call fcn.004b2a50
mov eax, dword [esp + 0x30]
cmp eax, 7
jne 0x4cb46c
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push 0x5d2e8c
call fcn.004b2a50
cmp dword [esp + 0x40], ebp
jne 0x4cb45e
mov edi, dword [esp + 0x48]
mov esi, 0x5d2e78
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x4cb394
test dl, dl
je 0x4cb390
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x4cb394
add ecx, 2
add esi, 2
test dl, dl
jne 0x4cb370
xor ecx, ecx
jmp 0x4cb399
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4cb3c4
mov eax, 1
lea ecx, [esp + 0x40]
mov dword [ebx + 0x5ac], eax
mov dword [ebx + 0x5b0], eax
mov dword [esp + 0x18], 0x5d31fc
call fcn.004b24e0
jmp 0x4cb558
mov esi, 0x5d2e64
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x4cb3ef
test dl, dl
je 0x4cb3eb
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x4cb3ef
add ecx, 2
add esi, 2
test dl, dl
jne 0x4cb3cb
xor ecx, ecx
jmp 0x4cb3f4
sbb ecx, ecx
sbb ecx, 0xffffffff
test ecx, ecx
jne 0x4cb418
lea ecx, [esp + 0x40]
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x18], 0x5d35fc
call fcn.004b24e0
jmp 0x4cb558
mov esi, 0x5d2e54
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4cb443
test cl, cl
je 0x4cb43f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4cb443
add eax, 2
add esi, 2
test cl, cl
jne 0x4cb41f
xor eax, eax
jmp 0x4cb448
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4cb45e
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x18], 0x5d39fc
lea ecx, [esp + 0x40]
call fcn.004b24e0
jmp 0x4cb558
cmp eax, ebp
jne 0x4cb558
mov edi, dword [esp + 0x38]
mov esi, 0x5d2e78
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4cb4a3
test cl, cl
je 0x4cb49f
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4cb4a3
add eax, 2
add esi, 2
test cl, cl
jne 0x4cb47f
xor eax, eax
jmp 0x4cb4a8
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4cb4ca
mov eax, 1
mov dword [esp + 0x18], 0x5d31fc
mov dword [ebx + 0x5ac], eax
mov dword [ebx + 0x5b0], eax
jmp 0x4cb558
mov esi, 0x5d2e64
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4cb4f5
test cl, cl
je 0x4cb4f1
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4cb4f5
add eax, 2
add esi, 2
test cl, cl
jne 0x4cb4d1
xor eax, eax
jmp 0x4cb4fa
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4cb512
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x18], 0x5d35fc
jmp 0x4cb558
mov esi, 0x5d2e54
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4cb53d
test cl, cl
je 0x4cb539
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4cb53d
add eax, 2
add esi, 2
test cl, cl
jne 0x4cb519
xor eax, eax
jmp 0x4cb542
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4cb558
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x18], 0x5d39fc
mov eax, dword [ebx + 0x1c]
xor esi, esi
xor ebp, ebp
cmp eax, 1
mov dword [esp + 0x20], esi
mov dword [esp + 0x10], esi
jne 0x4cb638
mov ecx, dword [ebx + 0x30]
cmp ecx, esi
jne 0x4cb584
cmp dword [ebx + 0x28], esi
jl 0x4cb638
cmp ecx, esi
je 0x4cb592
mov ecx, dword [ecx + 4]
push ecx
call fcn.004ec2e0
add esp, 4
jmp 0x4cb5b6
mov ecx, dword [esp + 0x49c]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, ebx
call fcn.004cad20
mov edx, dword [esp + 0x50]
mov ebp, eax
push edx
push ebp
call fcn.004ec270
add esp, 8
mov edi, eax
cmp edi, esi
mov dword [esp + 0x20], edi
je 0x4cb70a
mov ecx, edi
call fcn.004ec410
test eax, eax
je 0x4cb620
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x4cb5e6
mov ecx, esi
call fcn.004c44b0
push esi
call fcn.0055d27b
add esp, 4
push 8
call fcn.0055d252
mov esi, eax
add esp, 4
mov dword [esp + 0x54], esi
test esi, esi
mov byte [esp + 0x494], 3
je 0x4cb613
mov ecx, edi
call fcn.004ec410
push eax
mov ecx, esi
call fcn.004c4300
jmp 0x4cb615
xor eax, eax
mov byte [esp + 0x494], 0
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4cb70a
mov ecx, edi
call fcn.004ec430
jmp 0x4cb6fe
cmp eax, 2
jne 0x4cb717
mov eax, dword [ebx + 0x30]
test eax, eax
jne 0x4cb657
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jl 0x4cb717
test eax, eax
je 0x4cb665
mov eax, dword [eax + 4]
push eax
call fcn.004ea310
add esp, 4
jmp 0x4cb689
mov ecx, dword [esp + 0x49c]
lea eax, [esp + 0x50]
push eax
push ecx
mov ecx, ebx
call fcn.004cad20
mov edx, dword [esp + 0x50]
mov ebp, eax
push edx
push ebp
call fcn.004ea280
add esp, 8
mov edi, eax
test edi, edi
mov dword [esp + 0x10], edi
je 0x4cb70a
mov ecx, edi
call fcn.004ea520
test eax, eax
je 0x4cb6ef
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x4cb6b5
mov ecx, esi
call fcn.004c44b0
push esi
call fcn.0055d27b
add esp, 4
push 8
call fcn.0055d252
mov esi, eax
add esp, 4
mov dword [esp + 0x54], esi
test esi, esi
mov byte [esp + 0x494], 4
je 0x4cb6e2
mov ecx, edi
call fcn.004ea520
push eax
mov ecx, esi
call fcn.004c4300
jmp 0x4cb6e4
xor eax, eax
mov byte [esp + 0x494], 0
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4cb70a
mov ecx, edi
call fcn.004ea530
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], 1
test ebp, ebp
je 0x4cb717
push ebp
call fcn.004c66b0
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4cb759
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4cb741
mov ecx, dword [ebx + 0x28]
test ecx, ecx
jge 0x4cb741
mov eax, dword [eax + 4]
mov dword [ebx + 0x5ac], 1
mov dword [esp + 0x18], eax
jmp 0x4cb759
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x18], 0x5d39fc
cmp eax, 5
je 0x4cb759
mov dword [esp + 0x18], 0x5d3dfc
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
xor ebp, ebp
lea esi, [ecx + 0xa8]
lea ebx, [ecx + 0x4a8]
mov edx, dword [edi]
mov eax, dword [esp + 0x24]
mov dword [esi], edx
mov byte [ebx + ebp], al
test al, al
je 0x4cb798
cmp dword [esi], 0
je 0x4cb798
mov eax, dword [edi]
push eax
call fcn.004c66c0
mov ecx, dword [esp + 0x18]
mov dword [esi], eax
mov eax, dword [esp + 0x28]
add esp, 4
inc ebp
add edi, 4
add esi, 4
cmp ebp, 0x100
jl 0x4cb76f
cmp dword [ecx + 0x1c], 2
jne 0x4cb7ea
mov edx, dword [ecx + 0x30]
test edx, edx
jne 0x4cb7bb
mov edx, dword [ecx + 0x28]
test edx, edx
jl 0x4cb7ea
test eax, eax
je 0x4cb7ea
mov esi, ebx
mov eax, 0x5d3dfc
add ecx, 0xa8
cmp dword [ecx], 0
jne 0x4cb7dc
mov edx, dword [eax]
test edx, edx
je 0x4cb7dc
mov dword [ecx], edx
mov byte [esi], 0
add eax, 4
add ecx, 4
inc esi
cmp eax, 0x5d41fc
jl 0x4cb7cc
cmp dword [esp + 0x30], 7
jne 0x4cb8cd
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [esp + 0x3c]
push 0x5d2e48
call fcn.004b2a50
mov eax, dword [esp + 0x40]
mov ebp, dword [esp + 0x14]
cmp eax, 6
jne 0x4cb8c2
mov ecx, dword [esp + 0x48]
mov dword [ebp + 0x5ac], 1
xor esi, esi
xor edi, edi
mov eax, dword [ecx + 0xc]
test eax, eax
jle 0x4cb8c2
lea edx, [esp + 0x5c]
push edx
push edi
call fcn.004bc920
mov eax, dword [esp + 0x5c]
cmp eax, 1
jne 0x4cb850
mov esi, dword [esp + 0x64]
jmp 0x4cb8ab
cmp eax, 4
jne 0x4cb892
test esi, esi
jl 0x4cb88f
cmp esi, 0x100
jge 0x4cb88f
cmp byte [ebx + esi], 0
je 0x4cb877
mov eax, dword [ebp + esi*4 + 0xa8]
push eax
call fcn.004c66b0
add esp, 4
mov ecx, dword [esp + 0x64]
push ecx
call fcn.004c66c0
mov dword [ebp + esi*4 + 0xa8], eax
add esp, 4
mov byte [ebx + esi], 1
inc esi
jmp 0x4cb8ab
lea ecx, [esp + 0x5c]
call fcn.004b25d0
push eax
push 0x5d2e10
push 0xffffffffffffffff
call fcn.004cda10
add esp, 0xc
lea ecx, [esp + 0x5c]
call fcn.004b24e0
mov ecx, dword [esp + 0x48]
inc edi
cmp edi, dword [ecx + 0xc]
jl 0x4cb836
lea ecx, [esp + 0x40]
call fcn.004b24e0
jmp 0x4cb8d1
mov ebp, dword [esp + 0x14]
lea ecx, [esp + 0x30]
call fcn.004b24e0
mov ecx, dword [esp + 0x20]
xor edi, edi
cmp ecx, edi
je 0x4cb8ea
mov edx, dword [ecx]
push 1
call dword [edx]
mov ecx, dword [esp + 0x10]
cmp ecx, edi
je 0x4cb8f8
mov eax, dword [ecx]
push 1
call dword [eax]
lea eax, [ebp + 0xa8]
mov dword [esp + 0x24], edi
lea ebx, [esp + 0x8c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0x100
mov ecx, dword [esp + 0x10]
mov ebp, dword [ecx]
test ebp, ebp
je 0x4cba43
mov ecx, dword [0x5fcd0c]
push ebp
call fcn.004c38f0
test eax, eax
mov dword [ebx], eax
jne 0x4cba49
mov esi, 0x5d262c
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4cb964
test cl, cl
je 0x4cb960
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4cb964
add eax, 2
add esi, 2
test cl, cl
jne 0x4cb940
xor eax, eax
jmp 0x4cb969
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4cba49
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 3
jne 0x4cb9db
movsx eax, byte [ebp]
push eax
call fcn.0050493e
add esp, 4
test eax, eax
je 0x4cb9db
movsx ecx, byte [ebp + 1]
push ecx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cb9db
movsx edx, byte [ebp + 2]
push edx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cb9db
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x4cb9c0
cmp al, 0x66
jle 0x4cba34
cmp al, 0x41
jl 0x4cb9c8
cmp al, 0x46
jle 0x4cba34
mov al, byte [ebp + 2]
cmp al, 0x61
jl 0x4cb9d3
cmp al, 0x66
jle 0x4cba34
cmp al, 0x41
jl 0x4cb9db
cmp al, 0x46
jle 0x4cba34
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 2
jne 0x4cba3c
movsx eax, byte [ebp]
push eax
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cba3c
movsx ecx, byte [ebp + 1]
push ecx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cba3c
mov al, byte [ebp]
cmp al, 0x61
jl 0x4cba19
cmp al, 0x66
jle 0x4cba34
cmp al, 0x41
jl 0x4cba21
cmp al, 0x46
jle 0x4cba34
mov al, byte [ebp + 1]
cmp al, 0x61
jl 0x4cba2c
cmp al, 0x66
jle 0x4cba34
cmp al, 0x41
jl 0x4cba3c
cmp al, 0x46
jg 0x4cba3c
mov dword [esp + 0x24], 1
mov edi, 1
jmp 0x4cba49
mov dword [ebx], 0
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 4
add ebx, 4
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x4cb915
test edi, edi
je 0x4cbc98
mov ecx, dword [0x5fcd0c]
call fcn.004c3e00
test eax, eax
je 0x4cbc6e
mov edx, dword [esp + 0x14]
lea ebx, [esp + 0x8c]
mov dword [esp + 0x20], 0x100
lea eax, [edx + 0xa8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x10]
mov ebp, dword [eax]
test ebp, ebp
je 0x4cbc4f
cmp dword [ebx], 0
jne 0x4cbc4f
mov esi, 0x5d262c
mov eax, ebp
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4cbae0
test cl, cl
je 0x4cbadc
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4cbae0
add eax, 2
add esi, 2
test cl, cl
jne 0x4cbabc
xor eax, eax
jmp 0x4cbae5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x4cbc4f
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], 0xffffffff
not ecx
dec ecx
test eax, eax
mov esi, ecx
je 0x4cbba1
cmp esi, 3
jne 0x4cbb62
movsx eax, byte [ebp]
push eax
call fcn.0050493e
add esp, 4
test eax, eax
je 0x4cbb62
movsx ecx, byte [ebp + 1]
lea edi, [ebp + 1]
push ecx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cbb62
movsx edx, byte [ebp + 2]
push edx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cbb62
lea eax, [esp + 0x2c]
push eax
push 0x5d1774
push edi
call fcn.005027c6
add esp, 0xc
jmp 0x4cbc3e
cmp esi, 2
jne 0x4cbbd0
movsx ecx, byte [ebp]
push ecx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cbbd0
movsx edx, byte [ebp + 1]
push edx
call fcn.005049e4
add esp, 4
test eax, eax
je 0x4cbbd0
lea eax, [esp + 0x2c]
push eax
push 0x5d1774
push ebp
call fcn.005027c6
add esp, 0xc
jmp 0x4cbc3e
cmp esi, 2
jl 0x4cbbd0
cmp esi, 4
jg 0x4cbbd0
movsx ecx, byte [ebp]
push ecx
call fcn.005049bc
add esp, 4
test eax, eax
je 0x4cbbd0
movsx edx, byte [ebp + 1]
push edx
call fcn.005049bc
add esp, 4
test eax, eax
je 0x4cbbd0
push ebp
jmp 0x4cbc32
cmp esi, 3
jl 0x4cbc02
cmp esi, 5
jg 0x4cbc02
movsx eax, byte [ebp + 1]
lea edi, [ebp + 1]
push eax
call fcn.005049bc
add esp, 4
test eax, eax
je 0x4cbc02
movsx ecx, byte [ebp + 2]
push ecx
call fcn.005049bc
add esp, 4
test eax, eax
je 0x4cbc02
push edi
jmp 0x4cbc32
cmp esi, 4
jl 0x4cbc3e
cmp esi, 6
jg 0x4cbc3e
movsx edx, byte [ebp + 2]
lea esi, [ebp + 2]
push edx
call fcn.005049bc
add esp, 4
test eax, eax
je 0x4cbc3e
movsx eax, byte [ebp + 3]
push eax
call fcn.005049bc
add esp, 4
test eax, eax
je 0x4cbc3e
push esi
call fcn.0050231d
add esp, 4
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
test eax, eax
jl 0x4cbc4f
cmp eax, 0xff
jg 0x4cbc4f
mov dword [ebx], eax
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
add edx, 4
add ebx, 4
dec eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x20], eax
jne 0x4cba9e
jmp 0x4cbc98
mov ecx, dword [0x5fcd0c]
call fcn.004c3e30
test eax, eax
je 0x4cbc98
xor eax, eax
lea ecx, [esp + 0x8c]
cmp dword [ecx], 0
jne 0x4cbc8d
mov dword [ecx], eax
inc eax
add ecx, 4
cmp eax, 0x100
jl 0x4cbc86
lea ecx, [esp + 0x8c]
push ecx
call fcn.004c7240
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x4b8]
add esp, 4
mov ecx, esi
mov dword [esi + 0x5a8], eax
push eax
push 8
push ebx
call fcn.004cabb0
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4cbd85
mov ecx, dword [0x5fcd0c]
push eax
call fcn.004c3f10
mov ebp, eax
test ebp, ebp
je 0x4cbd85
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x8c]
lea edx, [esp + 0x8c]
rep stosd dword es:[edi], eax
push edx
call fcn.004c7240
add esp, 4
mov edi, eax
xor esi, esi
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x6c]
push 8
push eax
mov ecx, dword [ecx + 0x5a8]
push esi
call fcn.004c7f80
cmp eax, 1
jl 0x4cbd4b
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x6c]
push 8
push edx
push eax
mov ecx, ebp
call fcn.004c7f80
cmp eax, 1
jl 0x4cbd4b
lea ecx, [esp + 0x6c]
push eax
push ecx
push esi
mov ecx, edi
call fcn.004c7ec0
inc esi
cmp esi, 0x100
jl 0x4cbd09
mov ecx, ebp
call fcn.004c7e40
mov edx, dword [esp + 0x14]
mov esi, dword [edx + 0x5a8]
test esi, esi
je 0x4cbd79
mov ecx, esi
call fcn.004c7dd0
push esi
call fcn.0055d27b
add esp, 4
mov eax, dword [esp + 0x14]
mov esi, eax
mov dword [eax + 0x5a8], edi
lea edi, [esi + 0x5b8]
mov ecx, 0x100
mov eax, edi
fld qword [esi + 0x88]
fmul qword [0x594670]
add eax, 8
dec ecx
fstp qword [eax - 8]
jne 0x4cbd92
lea ecx, [esp + 0x30]
push ecx
push 0x5d2e04
mov ecx, ebx
call fcn.004b2a50
mov esi, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
dec esi
neg esi
sbb esi, esi
not esi
and esi, ecx
lea ecx, [esp + 0x30]
call fcn.004b24e0
test esi, esi
jl 0x4cbdde
cmp esi, 0xff
jle 0x4cbde0
xor esi, esi
lea edx, [esp + 0x30]
mov ecx, ebx
push edx
push 0x5d2df8
call fcn.004b2a50
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x38]
cmp eax, 1
je 0x4cbe03
mov ebp, 0xff
lea ecx, [esp + 0x30]
call fcn.004b24e0
test ebp, ebp
jl 0x4cbe18
cmp ebp, 0xff
jle 0x4cbe1d
mov ebp, 0xff
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x1c], 4
jne 0x4cbe3a
mov ecx, dword [eax + 0x38]
mov edx, dword [eax + 0x3c]
add eax, 0x38
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
jmp 0x4cbe4a
mov dword [esp + 0x54], 0xd2f1a9fc
mov dword [esp + 0x58], 0x3f50624d
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
push 0x5d2df0
call fcn.004b2a50
cmp dword [esp + 0x30], 6
jne 0x4cbefc
mov eax, dword [esp + 0x14]
mov edx, ebp
sub edx, esi
mov ecx, dword [eax + 0x20]
or ecx, 1
inc edx
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + 0xc]
cmp eax, edx
jge 0x4cbe87
lea ebp, [eax + esi - 1]
cmp esi, ebp
mov edi, esi
jg 0x4cc049
mov eax, dword [esp + 0x14]
lea ebx, [eax + esi*8 + 0x5b8]
mov dword [esp + 0x1c], ebx
mov edx, edi
lea ecx, [esp + 0x40]
sub edx, esi
push ecx
mov ecx, dword [esp + 0x3c]
push edx
call fcn.004bc920
mov eax, dword [esp + 0x40]
cmp eax, 1
je 0x4cbef6
cmp eax, 2
jne 0x4cbee0
fld qword [esp + 0x48]
fmul qword [esp + 0x54]
mov eax, dword [esp + 0x1c]
fst qword [ebx]
fcomp qword [eax]
fnstsw ax
test ah, 0x40
jne 0x4cbee0
mov eax, dword [esp + 0x14]
and dword [eax + 0x20], 0xfffffffe
lea ecx, [esp + 0x40]
call fcn.004b24e0
inc edi
add ebx, 8
cmp edi, ebp
jle 0x4cbea0
jmp 0x4cc049
fild dword [esp + 0x48]
jmp 0x4cbec5
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x4cbf8e
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [ebx + 0x14]
push 0x5ce5b8
call fcn.004ec1f0
test eax, eax
je 0x4cbf40
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
and edx, 0xffff
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul qword [0x594670]
fstp qword [eax + 0x6b8]
mov ecx, dword [esp + 0x14]
mov ebp, 0x100
lea esi, [ecx + 0xa8]
mov eax, dword [esi]
test eax, eax
je 0x4cbf80
mov ecx, dword [ebx + 0x14]
lea edx, [esp + 0x28]
push edx
push eax
call fcn.004ec1f0
test eax, eax
je 0x4cbf80
mov eax, dword [esp + 0x28]
and eax, 0xffff
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul qword [0x594670]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x4cbf4f
jmp 0x4cc049
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x20]
test cl, 1
je 0x4cbf9e
xor eax, eax
jmp 0x4cbfaf
mov edx, ecx
and dl, 2
neg dl
sbb edx, edx
and edx, 4
add edx, 4
mov eax, edx
test ecx, 0x40000
je 0x4cbfba
add eax, 2
test cl, 0x40
je 0x4cbfc0
inc eax
mov ebx, dword [eax*4 + 0x5e53e8]
lea eax, [esp + 0x28]
push eax
push 0x5ce5b8
mov ecx, dword [ebx + 0x14]
call fcn.004ec1f0
test eax, eax
je 0x4cbfff
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
and ecx, 0xffff
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fmul qword [0x594670]
fstp qword [edx + 0x6b8]
mov eax, dword [esp + 0x14]
mov ebp, 0x100
lea esi, [eax + 0xa8]
mov eax, dword [esi]
test eax, eax
je 0x4cc040
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [ebx + 0x14]
push eax
call fcn.004ec1f0
test eax, eax
je 0x4cc040
mov edx, dword [esp + 0x28]
and edx, 0xffff
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul qword [0x594670]
fstp qword [edi]
add esi, 4
add edi, 8
dec ebp
jne 0x4cc00e
lea ecx, [esp + 0x30]
call fcn.004b24e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, 1
cmp eax, 0x5d39fc
mov dword [ecx + 0xa0], edx
mov dword [ecx + 0xdd8], eax
mov dword [ecx + 0xddc], 0
jne 0x4cc0b6
mov eax, dword [esp + 0x4ac]
mov esi, 0x5d0ef4
mov eax, dword [eax + 4]
mov ebx, dword [esi]
mov edi, dword [eax]
cmp edi, ebx
je 0x4cc0b0
mov esi, 0x5d0ed0
cmp edi, dword [esi]
je 0x4cc0b0
mov esi, 0x5d0ebc
cmp edi, dword [esi]
je 0x4cc0b0
mov esi, 0x5d0ea8
mov eax, edi
cmp eax, dword [esi]
jne 0x4cc0b6
mov dword [ecx + 0xddc], edx
mov eax, ecx
mov ecx, dword [esp + 0x48c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x488
ret 0x1c