Function at 0x4f93f8
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd74
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp byte [eax + 0xed], 0
je 0x4f94bd
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x16c]
test eax, eax
je 0x4f9436
mov edx, dword [ebp + 0x20]
mov dl, 1
call fcn.00597e34
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
xor edx, edx
call fcn.0057b278
mov eax, dword [ebp + 0x20]
push eax
mov eax, dword [ebp + 0x1c]
push eax
push 1
mov al, byte [ebp + 0x14]
push eax
push 1
mov al, byte [ebp + 0xc]
push eax
mov al, byte [ebp + 8]
push eax
mov ecx, dword [ebp - 4]
mov edx, esi
mov eax, ebx
call fcn.004f93f8
push 0
push 0
mov eax, ebx
call fcn.0041e67c
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dl, 1
call fcn.0057b278
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edi, dword [eax + 0x16c]
test edi, edi
je 0x4f94b2
mov eax, dword [ebp + 0x20]
mov eax, edi
call fcn.00597ed8
test al, al
jne 0x4f94b2
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [eax + 0x16c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x28]
jmp 0x4fa0aa
push 0
push 0
mov eax, ebx
call fcn.0041e67c
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xdc], edx
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xe0], edx
mov eax, ebx
call fcn.004fa5c0
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x4f94fe
cmp dword [ebp - 0x20], 0xffffffff
jne 0x4f94fe
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
jmp 0x4fa0aa
push dword [ebp - 0x1c]
push dword [ebp - 0x20]
mov eax, ebx
call fcn.0041e67c
mov eax, dword [0x64ec50]
cmp byte [eax], 0
je 0x4f952f
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp byte [eax + 0x368], 0
jne 0x4f952f
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
mov eax, ebx
call fcn.004faab4
mov eax, dword [0x64ec50]
cmp byte [eax], 0
je 0x4f954f
mov eax, dword [ebp + 0x20]
cmp dword [eax], 0
je 0x4f954f
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp dword [eax + 0x434], 0
jne 0x4f9553
xor eax, eax
jmp 0x4f9555
mov al, 1
mov byte [ebp - 0x29], al
xor edi, edi
push ebp
push 0x4fa0a0
push dword fs:[edi]
mov dword fs:[edi], esp
xor eax, eax
mov dword [ebp - 0xc], eax
push esi
mov esi, 0x641b4c
lea edi, [ebp - 0x280]
mov ecx, 0x1e
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x20c], eax
lea eax, [ebp - 0x280]
mov dword [ebp - 0x208], eax
lea eax, [ebp - 0x208]
mov ecx, 0x1d0
mov edx, 0x3e
call fcn.004fad70
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f95c1
call fcn.004042e4
jmp 0x4fa0aa
test esi, esi
je 0x4f95e9
cmp ebx, esi
je 0x4f95e9
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 0x28]
lea eax, [ebp - 0x208]
mov edx, esi
call fcn.004f9374
lea eax, [ebp - 0x208]
xor edx, edx
call fcn.004fb038
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx + 0x28]
lea eax, [ebp - 0x208]
mov edx, ebx
call fcn.004f9374
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f9611
call fcn.004042e4
jmp 0x4fa0aa
xor eax, eax
push ebp
push 0x4f967a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp byte [eax + 0x368], 0
jne 0x4f9662
lea eax, [ebp - 0x208]
mov ecx, 0xffff
mov edx, 0xfe
call fcn.00506dbc
mov ebx, 0xe0
lea eax, [ebp - 0x208]
mov ecx, 0xffff
mov edx, ebx
call fcn.00506dbc
inc ebx
cmp ebx, 0xf0
jne 0x4f9647
lea eax, [ebp - 0x208]
or edx, 0xffffffff
call fcn.004fb038
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f969c
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f96b1
call fcn.004042e4
jmp 0x4fa0aa
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax + 8], 8
mov eax, dword [ebp - 0x1e0]
mov dword [ebp - 0x1dc], eax
mov eax, dword [ebp - 0x1e0]
cmp eax, 5
ja case.0x4f96d8.0
jmp dword [eax*4 + 0x4f96df]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov byte [eax + 0xc0], 0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax + 0x10], 3
jmp case.0x4f96d8.0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov byte [eax + 0xc0], 1
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax + 0x10], 1
jmp case.0x4f96d8.0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov byte [eax + 0xc0], 2
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax + 0x10], 3
mov dword [ebp - 0x1dc], 2
jmp case.0x4f96d8.0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov byte [eax + 0xc0], 3
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax + 0x10], 4
jmp case.0x4f96d8.0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov byte [eax + 0xc0], 4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov dword [eax + 0x10], 4
mov dword [ebp - 0x1dc], 4
cmp byte [ebp + 0x14], 0
je 0x4f979b
mov dword [ebp - 0x1dc], 3
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov al, byte [eax + 0xc8]
sub al, 1
jb 0x4f97b2
je 0x4f97bc
dec al
je 0x4f97c8
jmp 0x4f97d2
xor eax, eax
mov dword [ebp - 0x1c0], eax
jmp 0x4f97d2
mov dword [ebp - 0x1c0], 1
jmp 0x4f97d2
mov dword [ebp - 0x1c0], 2
mov al, byte [ebp - 0xea]
sub al, 2
jb 0x4f97e0
je 0x4f9804
jmp 0x4f985c
movzx edx, word [ebp - 0xe8]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b1e4
movzx edx, word [ebp - 0xe6]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b214
jmp 0x4f985c
movzx eax, word [ebp - 0xe8]
mov dword [ebp - 0x284], eax
fild dword [ebp - 0x284]
fld xword [0x4fa0b4]
fdivp st(1)
call fcn.00402ccc
mov edx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b1e4
movzx eax, word [ebp - 0xe6]
mov dword [ebp - 0x284], eax
fild dword [ebp - 0x284]
fld xword [0x4fa0b4]
fdivp st(1)
call fcn.00402ccc
mov edx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b214
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x36c]
test eax, eax
je 0x4f988d
mov edx, dword [ebp + 0x20]
call fcn.004027cc
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x36c], edx
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x370], edx
cmp dword [ebp - 0x12c], 1
sbb eax, eax
inc eax
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
mov byte [edx + 0xd0], al
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1ec]
mov dword [eax + 0xe4], edx
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1e8]
mov dword [eax + 0xe8], edx
mov dword [ebp - 0x1d8], 1
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
movzx eax, byte [eax + 0xd1]
cmp eax, 4
ja case.default.0x4f98e3
jmp dword [eax*4 + 0x4f98ea]
mov dword [ebp - 0x1d4], 1
jmp case.default.0x4f98e3
mov dword [ebp - 0x1d4], 2
jmp case.default.0x4f98e3
mov dword [ebp - 0x1d4], 4
jmp case.default.0x4f98e3
mov dword [ebp - 0x1d4], 8
jmp case.default.0x4f98e3
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp dword [eax + 0x14], 0
jle 0x4f99a5
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0
jle 0x4f99a5
xor eax, eax
mov dword [ebp - 0x14], eax
mov ebx, 3
mov ecx, ebx
mov eax, 1
shl eax, cl
mov ecx, eax
mov eax, dword [ebp - 0x1ec]
cdq
idiv ecx
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
cmp eax, dword [edx + 0x14]
jl 0x4f998d
mov eax, dword [ebp - 0x1e8]
cdq
idiv ecx
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
cmp eax, dword [edx + 0x18]
jl 0x4f998d
mov dword [ebp - 0x14], ebx
jmp 0x4f9993
dec ebx
cmp ebx, 0xffffffff
jne 0x4f9957
mov ecx, dword [ebp - 0x14]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x1d4], eax
jmp case.default.0x4f98e3
mov dword [ebp - 0x1d4], 1
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1d4]
mov dword [eax + 0xd8], edx
xor eax, eax
push ebp
push 0x4f99e3
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x208]
call fcn.004fc4d4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f9a05
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f9a1a
call fcn.004042e4
jmp 0x4fa0aa
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x198]
mov dword [eax + 0x14], edx
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x194]
mov dword [eax + 0x18], edx
cmp byte [ebp + 0x18], 0
je 0x4f9a46
call fcn.004042e4
jmp 0x4fa0aa
mov eax, dword [ebp - 0x198]
shl eax, 2
call fcn.004027ac
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp byte [eax + 0x369], 0
je 0x4f9b0f
mov eax, dword [ebp - 0x1dc]
cmp eax, 5
ja case.0x4f9a78.0
jmp dword [eax*4 + 0x4f9a7f]
push 3
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f9a78.0
push 5
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f9a78.0
push 5
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f9a78.0
push 7
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f9a78.0
push 5
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f9a78.0
push 5
mov ecx, dword [ebp - 0x194]
mov edx, dword [ebp - 0x198]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x24]
mov eax, dword [ebp - 0x194]
mov dword [ebp - 0x28c], eax
xor eax, eax
mov dword [ebp - 0x288], eax
fild qword [ebp - 0x28c]
fdivr dword [0x4fa0c0]
mov eax, dword [ebp + 0x1c]
fstp qword [eax + 0x18]
wait
mov eax, dword [ebp + 0x1c]
xor edx, edx
mov dword [eax + 0xc], edx
xor ecx, ecx
push ebp
push 0x4f9dce
push dword fs:[ecx]
mov dword fs:[ecx], esp
xor ebx, ebx
mov esi, 1
jmp 0x4f9da6
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x1dc]
dec eax
je 0x4f9b9d
dec eax
je 0x4f9cfa
dec eax
je 0x4f9c14
dec eax
je 0x4f9c57
jmp 0x4f9d68
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 3
jne 0x4f9bc3
lea edx, [ebp - 8]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
jmp 0x4f9d68
lea edx, [ebp - 0xc]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x198]
dec edx
test edx, edx
jl 0x4f9d68
inc edx
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x10]
mov cl, byte [eax]
mov byte [edx + 2], cl
mov cl, byte [eax]
mov byte [edx + 1], cl
mov cl, byte [eax]
mov byte [edx], cl
inc eax
add dword [ebp - 0x10], 3
dec dword [ebp - 0x38]
jne 0x4f9bf4
jmp 0x4f9d68
cmp byte [ebp + 0x14], 0
je 0x4f9d68
lea edx, [ebp - 8]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
cmp dword [ebp - 0x1e0], 2
jne 0x4f9d68
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.0056819c
jmp 0x4f9d68
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 5
jne 0x4f9cd4
lea edx, [ebp - 0xc]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f9dc4
cmp byte [ebp + 0xc], 0
je 0x4f9cae
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x198]
dec edx
shl edx, 2
test edx, edx
jl 0x4f9cae
inc edx
mov dword [ebp - 0x38], edx
mov dl, 0xff
sub dl, byte [eax]
mov byte [eax], dl
inc eax
dec dword [ebp - 0x38]
jne 0x4f9ca2
push 1
mov eax, dword [ebp - 0x198]
push eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
push eax
mov edi, dword [0x64ee80]
mov edi, dword [edi]
mov ecx, dword [ebp - 8]
mov dl, 2
mov eax, dword [ebp - 0xc]
call edi
jmp 0x4f9d68
lea edx, [ebp - 8]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f9dc4
jmp 0x4f9d68
cmp byte [ebp - 0x29], 0
je 0x4f9d38
lea edx, [ebp - 0xc]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
push 1
mov eax, dword [ebp - 0x198]
push eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
push eax
mov edi, dword [0x64ee80]
mov edi, dword [edi]
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [ebp - 0xc]
call edi
jmp 0x4f9d68
lea edx, [ebp - 8]
lea eax, [ebp - 0x208]
mov ecx, 1
call fcn.004fc670
mov esi, eax
cmp dword [ebp - 0x1e0], 2
jne 0x4f9d68
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.0056819c
add ebx, esi
mov eax, dword [ebp + 0x1c]
add dword [eax + 0xc], esi
mov eax, dword [ebp + 0x1c]
cmp word [eax + 2], 0
je 0x4f9d9b
mov eax, dword [ebp + 0x1c]
fild dword [eax + 0xc]
mov eax, dword [ebp + 0x1c]
fmul qword [eax + 0x18]
call fcn.00402ccc
mov ecx, eax
mov edi, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x1c]
mov edx, dword [edx + 8]
mov eax, dword [edi + 4]
call dword [edi]
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f9dc4
mov eax, dword [ebp - 0x17c]
cmp eax, dword [ebp - 0x194]
jae 0x4f9dc4
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 8]
cmp ebx, eax
jl 0x4f9b6e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f9df0
cmp ebx, dword [ebp - 0x194]
jge 0x4f9e0b
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.004042e4
jmp 0x4fa0aa
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4fa0aa
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0xd4]
call fcn.00592d74
mov esi, dword [ebp - 0xd8]
xor ebx, ebx
test esi, esi
je 0x4f9e68
mov al, byte [esi + 4]
cmp al, 0xe0
setne dl
or dl, bl
je 0x4f9e5a
mov dx, word [esi + 0xc]
push edx
mov ecx, dword [esi + 0x10]
mov edx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0xd4]
call fcn.00592cc4
cmp byte [esi + 4], 0xe0
jne 0x4f9e62
mov bl, 1
mov esi, dword [esi]
test esi, esi
jne 0x4f9e34
mov al, byte [ebp + 8]
and al, byte [ebp - 0x29]
je 0x4f9eb9
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b2d4
cmp byte [eax + 0x18], 0
je 0x4f9eb9
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b2d4
call fcn.005a4070
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0xd4]
mov dl, 0xe2
call fcn.00592c90
cmp eax, 0xffffffff
je 0x4f9eb9
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
mov edx, dword [edx + 0xd4]
xchg edx, eax
call fcn.00592da8
jmp 0x4f9e8f
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f9eff
cmp byte [ebp + 0x18], 0
jne 0x4f9eff
xor eax, eax
mov dword [ebp - 0x20c], eax
xor eax, eax
push ebp
push 0x4f9ef5
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x208]
call fcn.004fb1b8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f9eff
lea eax, [ebp - 0x208]
call fcn.004fae40
cmp dword [ebp - 0xc], 0
je 0x4f9f18
mov eax, dword [ebp - 0xc]
call fcn.004027cc
mov eax, dword [ebp - 0x208]
mov eax, dword [eax + 0x70]
test eax, eax
je 0x4f9f44
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
mov dword [edx + 0xdc], eax
mov eax, dword [ebp - 0x208]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx]
mov dword [edx + 0xe0], eax
lea eax, [ebp - 0x208]
call fcn.004f93dc
cmp byte [ebp + 0x10], 0
je 0x4fa09f
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov esi, dword [eax + 0xd4]
mov dl, 0xed
mov eax, esi
call fcn.00592c90
mov ebx, eax
test ebx, ebx
jl 0x4f9f9c
mov edx, ebx
mov eax, esi
call fcn.00592c78
movzx eax, ax
push eax
mov edx, ebx
mov eax, esi
call fcn.00592c4c
mov edx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x15c]
pop ecx
call fcn.005932c0
mov dl, 0xe1
mov eax, esi
call fcn.00592c90
mov ebx, eax
test ebx, ebx
jl 0x4fa09f
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x34], eax
mov edx, ebx
mov eax, esi
call fcn.00592c78
movzx eax, ax
push eax
mov edx, ebx
mov eax, esi
call fcn.00592c4c
mov ecx, dword [ebp + 0x20]
mov ecx, dword [ecx]
pop edx
call fcn.005966b0
test al, al
je 0x4fa09f
cmp dword [ebp - 0x30], 1
jne 0x4fa064
cmp dword [ebp - 0x34], 1
jne 0x4fa064
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp dword [eax + 0x190], 3
jne 0x4fa018
mov dword [ebp - 0x28], 0x851eb852
mov dword [ebp - 0x24], 0x400451eb
jmp 0x4fa024
xor eax, eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], 0x3ff00000
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
fld qword [eax + 0x180]
fmul qword [ebp - 0x28]
call fcn.00402ccc
mov edx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b1e4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
fld qword [eax + 0x188]
fmul qword [ebp - 0x28]
call fcn.00402ccc
mov edx, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
call fcn.0057b214
jmp 0x4fa07e
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x30]
call fcn.0057b1e4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [ebp - 0x34]
call fcn.0057b214
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
cmp byte [eax + 0xec], 0
je 0x4fa09f
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
mov edx, dword [eax + 0x17c]
mov eax, dword [ebp - 4]
call fcn.005a48e8
ret
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c