Function at 0x492020
Capabilities:
Check for software breakpoints
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4d7231
mov eax, dword fs:[0]
push eax
mov eax, 0x2840
mov dword fs:[0], esp
call fcn.004d0b30
push ebx
mov ebx, dword [esp + 0x2898]
mov eax, ebx
imul eax, dword [esp + 0x2894]
push ebp
xor ecx, ecx
push esi
mov esi, dword [esp + 0x2878]
push edi
mov byte [esp + 0x15], cl
mov dword [esp + 0x30], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x2858], ecx
mov edi, 0x64
mov dword [esp + 0x54], ecx
push 0x320
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], 5
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edi
call fcn.004c4f28
mov ebp, eax
add esp, 4
mov dword [esp + 0x94], ebp
mov dword [esp + 0xa0], 0xffffffff
mov byte [esp + 0x2858], 1
test esi, esi
jns 0x4920de
mov dword [esp + 0x287c], 0
jmp 0x4920e9
cmp esi, edi
jle 0x4920e9
mov dword [esp + 0x287c], edi
cmp dword [esp + 0x286c], 0
je 0x492d3c
cmp dword [esp + 0x2868], 0
je 0x492d3c
cmp dword [esp + 0x2860], 0
je 0x492d3c
cmp dword [esp + 0x2864], 0
je 0x492d3c
mov edi, dword [esp + 0x30]
push edi
call fcn.004c4f28
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x492d3c
mov ebp, dword [esp + 0x2880]
cmp ebp, 0xffffffff
jne 0x492194
cmp byte [esp + 0x2894], 0
jne 0x492194
or ecx, ebp
or esi, ebp
xor edx, edx
test edi, edi
jle 0x492192
lea ebx, [ebx]
mov eax, dword [esp + 0x286c]
mov eax, dword [eax + edx*4]
and eax, 0xffffff
cmp ecx, 0xffffffff
jne 0x492178
mov ecx, eax
jmp 0x49218d
cmp esi, 0xffffffff
jne 0x492185
cmp ecx, eax
je 0x49218d
mov esi, eax
jmp 0x49218d
cmp ecx, eax
je 0x49218d
cmp esi, eax
jne 0x492194
inc edx
cmp edx, edi
jl 0x492160
mov ebp, ecx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28a0]
push 0
lea ecx, [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2874]
push edx
push ebx
push eax
push ebp
push ecx
lea ecx, [esp + 0x2894]
lea eax, [esp + 0x2890]
call fcn.00418f50
add esp, 0x1c
test al, al
je 0x492d28
cmp byte [esp + 0x2894], 0
je 0x4922b2
mov ebx, dword [esp + 0x28a0]
mov eax, dword [esp + 0x28a4]
mov edx, dword [esp + 0x20]
dec ebx
xor edi, edi
mov byte [esp + 0x16], 0xcc
lea ebp, [eax - 1]
test eax, eax
jle 0x492270
xor esi, esi
cmp dword [esp + 0x28a0], esi
jle 0x492266
test esi, esi
je 0x49221a
test edi, edi
je 0x49221a
cmp esi, ebx
je 0x49221a
cmp edi, ebp
jne 0x49225c
mov eax, edi
imul eax, dword [esp + 0x28a0]
add eax, esi
cmp byte [eax + edx], 0xcc
je 0x49225c
push 0
push 0
lea ecx, [esp + 0x1e]
push ecx
push edi
lea eax, [esp + 0x28b0]
push eax
push edx
lea eax, [esp + 0xac]
mov ecx, esi
call fcn.0041a330
add esp, 0x18
test al, al
je 0x492d28
mov edx, dword [esp + 0x20]
inc esi
cmp esi, dword [esp + 0x28a0]
jl 0x49220a
inc edi
cmp edi, dword [esp + 0x28a4]
jl 0x4921ff
mov esi, dword [esp + 0x30]
xor ecx, ecx
test esi, esi
jle 0x492293
lea ebx, [ebx]
mov al, byte [ecx + edx]
cmp al, 0xcc
je 0x49228e
test al, al
sete byte [esp + 0x1c]
inc ecx
cmp ecx, esi
jl 0x492280
xor eax, eax
test esi, esi
jle 0x4922b2
mov ecx, dword [esp + 0x20]
lea ecx, [ecx]
cmp byte [eax + ecx], 0xcc
jne 0x4922ad
mov dl, byte [esp + 0x1c]
mov byte [eax + ecx], dl
inc eax
cmp eax, esi
jl 0x4922a0
cmp dword [esp + 0x2884], 0
jle 0x4923b4
xor ebp, ebp
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], eax
mov dword [esp + 0x18], ebp
cmp dword [esp + 0x28a0], ebp
jle 0x4923b4
or edx, 0xffffffff
xor eax, eax
mov edi, edx
mov ecx, edx
cmp dword [esp + 0x28a4], eax
jle 0x49232a
mov esi, dword [esp + 0x20]
add esi, ebp
mov bl, byte [esp + 0x1c]
cmp byte [esi], bl
je 0x49230b
cmp edi, 0xffffffff
jne 0x492309
mov edi, eax
mov ecx, eax
add esi, dword [esp + 0x28a0]
inc eax
cmp eax, dword [esp + 0x28a4]
jl 0x4922fa
or edx, 0xffffffff
cmp edi, edx
je 0x49232a
sub ecx, edi
inc ecx
mov esi, ecx
jne 0x492330
mov dword [esp + 0x2c], edx
jmp 0x4923a6
cmp dword [esp + 0x2c], edx
jne 0x492348
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], edx
jmp 0x4923a6
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x2884]
jl 0x4923a6
cmp dword [esp + 0x24], edx
jne 0x492366
mov dword [esp + 0x24], ebp
jmp 0x4923a2
cmp esi, dword [esp + 0x18]
jle 0x4923a0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x28a4]
mov ecx, dword [esp + 0x28a0]
add eax, ebp
dec eax
mov byte [eax], bl
add eax, ecx
dec edx
jne 0x492381
cmp esi, dword [esp + 0x18]
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], 0xffffffff
jge 0x4923a6
mov dword [esp + 0x18], esi
inc ebp
cmp ebp, dword [esp + 0x28a0]
jl 0x4922e2
mov eax, dword [esp + 0x2870]
xor edi, edi
cmp dword [eax], edi
jg 0x4923d4
cmp dword [eax + 4], edi
jg 0x4923d4
cmp dword [eax + 8], edi
jg 0x4923d4
cmp dword [eax + 0xc], edi
jle 0x49266c
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov esi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], eax
mov ebx, SysReAllocString
cmp ecx, edi
jne 0x4923fc
mov dword [esp + 0x38], ebx
cmp edx, edi
jne 0x492404
mov dword [esp + 0x3c], ebx
mov ecx, SysReAllocString
cmp esi, edi
jne 0x492411
mov dword [esp + 0x40], ecx
cmp eax, edi
jne 0x492419
mov dword [esp + 0x44], ecx
mov cl, byte [esp + 0x1c]
test cl, cl
sete al
or cl, 0xf0
mov byte [esp + 0x37], cl
mov cl, al
mov byte [esp + 0x17], al
or cl, 0xe0
or al, 0xd0
mov byte [esp + 0x16], cl
mov byte [esp + 0x36], al
mov dword [esp + 0x28], edi
cmp dword [esp + 0x28a4], edi
jle 0x4925b3
xor esi, esi
mov dword [esp + 0x2c], esi
cmp dword [esp + 0x28a0], esi
jle 0x49259d
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
mov eax, ecx
imul eax, dword [esp + 0x28a0]
add eax, esi
mov al, byte [eax + edx]
test al, 0xf0
jne 0x49258b
cmp al, byte [esp + 0x17]
jne 0x49258b
lea eax, [esp + 0x58]
push eax
mov eax, dword [esp + 0x28a0]
push eax
lea eax, [esp + 0x1e]
push eax
push ecx
lea ecx, [esp + 0x28b0]
push ecx
push edx
lea eax, [esp + 0xac]
mov ecx, esi
call fcn.0041a330
add esp, 0x18
test al, al
je 0x492d28
cmp byte [esp + 0x58], 0
je 0x49258b
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x2870]
sub ebx, dword [esp + 0x5c]
mov ecx, edx
sub ecx, eax
cmp byte [edi + 0x12], 0
je 0x4925d5
cmp byte [edi + 0x10], 0
je 0x492509
cmp ebx, dword [esp + 0x38]
jl 0x49261f
cmp ecx, dword [esp + 0x3c]
jge 0x492519
jmp 0x49261f
cmp ebx, dword [esp + 0x38]
jge 0x492519
cmp ecx, dword [esp + 0x3c]
jl 0x49261f
cmp byte [edi + 0x11], 0
lea edi, [ebx + 1]
je 0x492531
cmp edi, dword [esp + 0x40]
jge 0x49261f
jmp 0x492612
cmp edi, dword [esp + 0x40]
jl 0x492544
lea edi, [ecx + 1]
cmp edi, dword [esp + 0x44]
jge 0x49261f
cmp eax, edx
jg 0x49258b
mov edi, dword [esp + 0x28a0]
imul eax, edi
add eax, dword [esp + 0x5c]
lea ebp, [ecx + 1]
add eax, dword [esp + 0x20]
mov esi, eax
nop
mov ecx, dword [esp + 0x64]
cmp dword [esp + 0x5c], ecx
jg 0x492582
mov ecx, esi
lea edx, [ebx + 1]
nop
mov al, byte [esp + 0x16]
cmp byte [ecx], al
jne 0x49257e
mov al, byte [esp + 0x36]
mov byte [ecx], al
inc ecx
dec edx
jne 0x492570
add esi, edi
dec ebp
jne 0x492560
mov esi, dword [esp + 0x2c]
inc esi
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0x28a0]
jl 0x492460
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [esp + 0x28a4]
jl 0x49244d
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
xor edi, edi
xor eax, eax
cmp ecx, edi
jle 0x492674
and byte [eax + esi], 0xf
inc eax
cmp eax, ecx
jl 0x4925c7
jmp 0x492674
cmp byte [edi + 0x10], 0
je 0x4925e3
cmp ebx, dword [esp + 0x38]
jl 0x4925f7
jmp 0x4925ed
cmp ebx, dword [esp + 0x38]
jge 0x492544
cmp ecx, dword [esp + 0x3c]
jge 0x492544
cmp byte [edi + 0x11], 0
lea edi, [ebx + 1]
je 0x492608
cmp edi, dword [esp + 0x40]
jge 0x49261f
jmp 0x492612
cmp edi, dword [esp + 0x40]
jl 0x492544
lea edi, [ecx + 1]
cmp edi, dword [esp + 0x44]
jl 0x492544
cmp eax, edx
jg 0x49258b
mov edi, dword [esp + 0x28a0]
imul eax, edi
add eax, dword [esp + 0x5c]
lea ebp, [ecx + 1]
add eax, dword [esp + 0x20]
mov esi, eax
mov edi, edi
mov edx, dword [esp + 0x64]
cmp dword [esp + 0x5c], edx
jg 0x492662
mov ecx, esi
lea edx, [ebx + 1]
nop
mov al, byte [esp + 0x16]
cmp byte [ecx], al
jne 0x49265e
mov al, byte [esp + 0x37]
mov byte [ecx], al
inc ecx
dec edx
jne 0x492650
add esi, edi
dec ebp
jne 0x492640
jmp 0x492587
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
cmp byte [esp + 0x1c], 0
jne 0x49269a
xor eax, eax
mov byte [esp + 0x1c], 1
cmp ecx, edi
jle 0x492695
cmp byte [eax + esi], 0
sete dl
mov byte [eax + esi], dl
inc eax
cmp eax, ecx
jl 0x492686
cmp byte [esp + 0x1c], 0
sete byte [esp + 0x17]
cmp byte [esp + 0x288c], 0
je 0x4926cc
xor eax, eax
cmp ecx, edi
jle 0x4926cc
mov edx, dword [esp + 0x286c]
movzx ebx, byte [eax + esi]
neg ebx
sbb ebx, ebx
and ebx, 0xffffff
mov dword [edx + eax*4], ebx
inc eax
cmp eax, ecx
jl 0x4926b6
mov eax, dword [esp + 0x28a4]
mov ecx, dword [esp + 0x28a0]
push eax
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x58]
push edx
lea eax, [esp + 0x8c]
push eax
push ecx
push esi
call fcn.00419d80
add esp, 0x18
test al, al
je 0x492d28
mov esi, dword [esp + 0x2860]
mov eax, dword [esi + 4]
cmp eax, edi
je 0x49271a
mov edx, dword [esi]
push edx
push edi
push eax
call fcn.004ce290
add esp, 0xc
mov eax, dword [esi + 4]
push 0x190
push eax
mov dword [esi], 0xc8
call fcn.004c61a7
add esp, 8
cmp eax, edi
jne 0x492748
mov ecx, dword [esi + 4]
push ecx
call fcn.004c57e5
add esp, 4
mov dword [esi + 4], edi
mov dword [esi], edi
jmp 0x492753
xor edx, edx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
mov word [eax], dx
mov esi, dword [esp + 0x2864]
mov eax, dword [esi + 4]
cmp eax, edi
je 0x49276e
mov ecx, dword [esi]
push ecx
push edi
push eax
call fcn.004ce290
add esp, 0xc
mov edx, dword [esi + 4]
push 0x1000
push edx
mov dword [esi], 0x800
call fcn.004c61a7
add esp, 8
cmp eax, edi
jne 0x49279c
mov eax, dword [esi + 4]
push eax
call fcn.004c57e5
add esp, 4
mov dword [esi + 4], edi
mov dword [esi], edi
jmp 0x4927a7
xor ecx, ecx
mov dword [esi + 4], eax
mov dword [esi + 8], edi
mov word [eax], cx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edi
cmp eax, edi
je 0x492d23
mov edx, dword [esp + 0x48]
mov esi, dword [edx + 4]
mov ecx, dword [esi + 0x24]
mov eax, dword [esi + 0x1c]
mov ebp, dword [esi + 0x18]
add ebp, dword [esi + 0x20]
lea edx, [eax + ecx]
mov ecx, eax
lea edi, [esi + 0x28]
mov dword [esp + 0x18], 0
mov dword [esp + 0x24], edx
cmp ecx, edx
jge 0x49281a
lea esp, [esp]
mov eax, dword [esi + 0x18]
cmp eax, ebp
jge 0x492815
mov edx, dword [esi + 0x10]
imul edx, ecx
add edx, edi
mov bl, byte [esp + 0x17]
cmp byte [edx + eax], bl
jne 0x49280c
inc dword [esp + 0x18]
inc eax
cmp eax, ebp
jl 0x4927ff
mov edx, dword [esp + 0x24]
inc ecx
cmp ecx, edx
jl 0x4927f0
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x20]
cdq
sub eax, edx
sar eax, 1
add eax, dword [esi + 4]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
mov eax, ecx
imul eax, dword [esi + 0x24]
fidiv dword [esp + 0x28a4]
cmp eax, dword [esp + 0x18]
jle 0x492d0e
cmp dword [esi + 0x10], 5
jl 0x492d0e
cmp dword [esi + 0x14], 5
lea ebx, [esi + 0x14]
mov dword [esp + 0x24], ebx
jl 0x492d0e
cmp byte [esp + 0x2898], 0
jne 0x492892
fld qword [0x50a0d0]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x492d0e
fcomp qword [0x50a0c8]
fnstsw ax
test ah, 5
jp 0x492d10
jmp 0x492894
fstp st(0)
cmp byte [esp + 0x2890], 0
je 0x49295e
mov ebp, dword [esi + 0x18]
add ecx, ebp
mov dword [esp + 0x18], ecx
cmp ebp, ecx
jge 0x49295e
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
lea ecx, [edx + ecx - 1]
mov byte [esp + 0x15], 0
cmp ecx, edx
jl 0x49294f
cmp byte [esp + 0x15], 0
jne 0x492905
mov ebx, dword [esi + 0x10]
mov al, byte [esp + 0x1c]
imul ebx, ecx
add ebx, edi
cmp byte [ebx + ebp], al
je 0x492943
mov eax, ecx
sub eax, edx
imul eax, eax, 0x64
cdq
idiv dword [esi + 0x24]
cmp eax, 0x1e
jg 0x49294f
test ebp, ebp
je 0x49294f
mov dl, byte [esp + 0x1c]
cmp byte [ebx + ebp - 1], dl
jne 0x49294f
mov byte [esp + 0x15], 1
mov eax, dword [esi + 0x10]
mov dl, byte [esp + 0x1c]
imul eax, ecx
add eax, edi
cmp byte [esp + 0x288c], 0
mov byte [eax + ebp], dl
je 0x492943
mov eax, dword [esi + 4]
sub eax, dword [esi + 0x1c]
mov edx, dword [esp + 0x286c]
add eax, ecx
imul eax, dword [esp + 0x28a0]
sub eax, dword [esi + 0x18]
add eax, ebp
add eax, dword [esi]
mov dword [edx + eax*4], 0xffffff
mov edx, dword [esi + 0x1c]
dec ecx
cmp ecx, edx
jge 0x4928ca
inc ebp
cmp ebp, dword [esp + 0x18]
jl 0x4928b3
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
mov edx, dword [esi + 0x20]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x8c], eax
mov eax, dword [esi + 0x24]
push 0
mov dword [esp + 0x94], ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x70], edx
mov edx, dword [ebx]
mov dword [esp + 0x74], eax
push ebp
lea eax, [esp + 0x80]
push eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
push edi
lea edx, [esp + 0x7c]
lea ecx, [esp + 0x9c]
call fcn.0041b590
push 1
push ebp
lea ecx, [esp + 0x90]
push ecx
push edi
lea edx, [esp + 0x8c]
lea ecx, [esp + 0xac]
call fcn.0041b590
add esp, 0x20
cmp byte [esp + 0x288c], 0
je 0x492a48
mov edx, dword [esi + 0x18]
mov ebp, dword [esi + 0x20]
add ebp, edx
mov dword [esp + 0x18], ebp
cmp edx, ebp
jge 0x492a48
mov ecx, dword [esi + 0x1c]
mov eax, dword [esi + 0x24]
lea eax, [ecx + eax - 1]
cmp eax, ecx
jl 0x492a3f
mov ebx, dword [esi + 0x10]
mov ebp, dword [esi + 4]
imul ebx, eax
add ebx, edi
movzx ebx, byte [ebx + edx]
neg ebx
sbb ebx, ebx
sub ebp, ecx
mov ecx, dword [esp + 0x286c]
add ebp, eax
imul ebp, dword [esp + 0x28a0]
sub ebp, dword [esi + 0x18]
and ebx, 0xffffff
add ebp, edx
add ebp, dword [esi]
dec eax
mov dword [ecx + ebp*4], ebx
mov ecx, dword [esi + 0x1c]
cmp eax, ecx
jge 0x4929fd
mov ebp, dword [esp + 0x18]
inc edx
cmp edx, ebp
jl 0x4929f2
mov ebx, dword [esp + 0x24]
cmp byte [esp + 0x2888], 0
je 0x492b1c
mov ebp, dword [esi + 0x1c]
mov dword [esp + 0x30], 0xffffffff
cmp ebp, dword [ebx]
jge 0x492ab1
mov ecx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
cmp ecx, eax
jge 0x492aac
lea edx, [ecx - 1]
test ecx, ecx
je 0x492a9f
cmp dword [esp + 0x30], edx
je 0x492a9f
imul eax, ebp
add eax, ecx
mov bl, byte [edi + eax]
cmp bl, byte [esp + 0x1c]
jne 0x492a9f
mov bl, byte [esp + 0x1c]
cmp byte [edi + eax - 1], bl
je 0x492a9f
mov bl, byte [esp + 0x17]
mov byte [edi + eax], bl
mov dword [esp + 0x30], ecx
mov eax, dword [esi + 0x10]
inc ecx
inc edx
cmp ecx, eax
jl 0x492a72
mov ebx, dword [esp + 0x24]
inc ebp
cmp ebp, dword [ebx]
jl 0x492a65
mov edx, dword [esi + 0x18]
mov dword [esp + 0x30], 0xffffffff
cmp edx, dword [esi + 0x10]
jge 0x492b1c
mov ebp, dword [esi + 0x1c]
cmp ebp, dword [ebx]
jge 0x492b16
lea eax, [ebp - 1]
mov dword [esp + 0x18], eax
test ebp, ebp
je 0x492b09
mov ecx, dword [esp + 0x18]
cmp dword [esp + 0x30], ecx
je 0x492b09
mov ecx, dword [esi + 0x10]
mov bl, byte [esp + 0x1c]
mov eax, ecx
imul eax, ebp
add eax, edx
cmp byte [edi + eax], bl
jne 0x492b09
imul ecx, dword [esp + 0x18]
add ecx, edi
mov cl, byte [ecx + edx]
cmp cl, bl
je 0x492b09
mov cl, byte [esp + 0x17]
mov byte [edi + eax], cl
mov dword [esp + 0x30], ebp
mov ebx, dword [esp + 0x24]
inc dword [esp + 0x18]
inc ebp
cmp ebp, dword [ebx]
jl 0x492acf
inc edx
cmp edx, dword [esi + 0x10]
jl 0x492ac1
mov edx, dword [esi + 0x10]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
mov dword [esp + 0x28], 0
fld qword [0x50a080]
lea ebp, [esp + 0x13c]
fld st(0)
fdivrp st(2)
fidiv dword [ebx]
fild dword [esp + 0x28]
xor esi, esi
mov dword [esp + 0x2c], esi
fdiv st(1)
call fcn.004d3dc0
mov ebx, eax
imul ebx, dword [esp + 0x18]
fild dword [esp + 0x2c]
fdiv st(2)
call fcn.004d3dc0
add eax, ebx
mov al, byte [eax + edi]
inc esi
mov byte [ebp], al
inc ebp
mov dword [esp + 0x2c], esi
cmp esi, 0x64
jl 0x492b5a
mov eax, dword [esp + 0x28]
inc eax
mov dword [esp + 0x28], eax
cmp eax, 0x64
jl 0x492b42
mov bl, byte [esp + 0x1c]
fstp st(1)
mov eax, 0x64
fstp st(0)
mov ecx, eax
push ecx
push eax
lea ecx, [esp + 0x144]
push ecx
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x8c]
push edx
call fcn.0041a200
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x90]
mov dword [esp + 0xcc], ecx
add ecx, dword [esp + 0x54]
add esp, 0x1c
xor ebp, ebp
push 0x80
mov dword [esp + 0xb0], eax
add eax, dword [esp + 0x44]
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xbc]
push ebp
push ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xc0], ebp
call fcn.004ce290
mov edx, dword [esp + 0x2888]
add esp, 0xc
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x286c]
lea ecx, [esp + 0xb8]
push ecx
mov dword [esp + 0x13c], edx
lea edx, [esp + 0x144]
push edx
push eax
lea eax, [esp + 0xb4]
lea ecx, [esp + 0xbc]
mov dword [esp + 0x140], ebp
call fcn.00416ca0
mov eax, dword [esp + 0xb4]
mov esi, dword [esp + 0x2860]
cdq
mov ebx, edx
mov edi, eax
push ebx
push edi
call fcn.004154a0
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x2864]
mov ecx, eax
inc eax
mov dword [esp + 0x4c], eax
test ecx, ecx
je 0x492c91
push 1
push ebp
push 0x4e7a74
call fcn.00415800
push ebx
push edi
call fcn.004154a0
push 1
push ebp
push 0x508630
call fcn.00415800
xor edi, edi
cmp edi, ebp
je 0x492cb8
push 1
push ebp
push 0x4e7a1c
call fcn.00415800
mov ebx, dword [esp + 0xb4]
cmp edi, ebx
jne 0x492cd0
push 1
push ebp
push 0x508638
call fcn.00415800
cmp dword [esp + edi*4 + 0xb8], ebp
je 0x492ce6
push 1
push ebp
push 0x4efedc
call fcn.00415800
mov eax, dword [esp + edi*4 + 0xe0]
cdq
push edx
push eax
call fcn.004154a0
cmp edi, ebx
jne 0x492d06
push 1
push ebp
push 0x50863c
call fcn.00415800
inc edi
cmp edi, 0xa
jl 0x492ca7
jmp 0x492d10
fstp st(0)
mov edx, dword [esp + 0x48]
mov eax, dword [edx + 0x10]
mov dword [esp + 0x48], eax
test eax, eax
jne 0x4927be
mov byte [esp + 0x15], 1
mov eax, dword [esp + 0x20]
push eax
call fcn.004c57e5
mov ebp, dword [esp + 0x98]
add esp, 4
test ebp, ebp
je 0x492d49
push ebp
call fcn.004c57e5
add esp, 4
or edi, 0xffffffff
mov dword [esp + 0x2858], edi
mov esi, dword [esp + 0x80]
test esi, esi
je 0x492db3
mov dword [esp + 0x38], esi
mov dword [esp + 0x2858], 2
mov ecx, dword [esi + 0x10]
test ecx, ecx
je 0x492d7b
push 1
call fcn.00414ef0
mov dword [esp + 0x2858], edi
mov eax, dword [esi + 4]
test eax, eax
je 0x492daa
mov ecx, dword [esi]
push ecx
push 0
push eax
call fcn.004ce290
mov edx, dword [esi + 4]
add esp, 0xc
push edx
call fcn.004c57e5
add esp, 4
mov dword [esi + 4], 0
push esi
call fcn.004c57da
add esp, 4
mov ecx, dword [esp + 0x2850]
mov al, byte [esp + 0x15]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x284c
ret