Function at 0x4f139c
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd48
push ebx
push esi
push edi
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov byte [ebp - 0xd], 0
mov byte [ebp - 0x45], 0
mov byte [ebp - 0x5d], 0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0x519], 0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0xfd], 0
je 0x4f14fc
xor eax, eax
push ebp
push 0x4f14f5
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0
je 0x4f1407
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 4]
je 0x4f1407
mov eax, dword [ebp - 8]
call fcn.00421300
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
jmp 0x4f1415
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x54], 0xffffffff
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x17c], 0
je 0x4f1435
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x17c]
mov dl, 1
call fcn.006348bc
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
call fcn.006106cc
mov eax, dword [ebp + 0x24]
push eax
mov eax, dword [ebp + 0x20]
push eax
push 1
mov al, byte [ebp + 0x18]
push eax
push 1
mov al, byte [ebp + 0x10]
push eax
mov al, byte [ebp + 0xc]
push eax
mov al, byte [ebp + 8]
push eax
mov ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.004f139c
mov byte [ebp - 0xd], al
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dl, 1
call fcn.006106cc
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x17c], 0
je 0x4f14bd
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x17c]
call fcn.0063498c
test al, al
jne 0x4f14bd
mov byte [ebp - 0xd], 1
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [eax + 0x17c]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx + 0x28]
call fcn.00404628
jmp 0x4f235d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f14fc
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.00421320
cmp dword [ebp - 0x54], 0
jne 0x4f14e4
cmp dword [ebp - 0x58], 0
jb 0x4f14f4
jmp 0x4f14e6
jl 0x4f14f4
push dword [ebp - 0x54]
push dword [ebp - 0x58]
mov eax, dword [ebp - 8]
call fcn.00421320
ret
mov eax, dword [ebp - 4]
call fcn.00421300
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xec], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xf0], edx
mov eax, dword [ebp - 4]
call fcn.004f2be0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x4f154c
cmp dword [ebp - 0x30], 0xffffffff
jne 0x4f154c
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
jmp 0x4f235d
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
mov eax, dword [ebp - 4]
call fcn.00421320
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x515], 0
je 0x4f1583
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x514], 0
jne 0x4f1583
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004f30d4
mov eax, dword [0x83f0d0]
cmp byte [eax], 0
je 0x4f159b
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x5ec], 0
jne 0x4f159f
xor eax, eax
jmp 0x4f15a1
mov al, 1
mov byte [ebp - 0x39], al
mov eax, dword [0x83f318]
cmp byte [eax], 0
je 0x4f15bc
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x5ec], 0
jne 0x4f15c0
xor eax, eax
jmp 0x4f15c2
mov al, 1
mov byte [ebp - 0x3a], al
cmp byte [ebp - 0x3a], 0
je 0x4f15de
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.00610728
call fcn.00642c64
test al, al
jne 0x4f15e2
xor eax, eax
jmp 0x4f15e4
mov al, 1
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov byte [edx + 0x519], al
xor ecx, ecx
push ebp
push 0x4f2353
push dword fs:[ecx]
mov dword fs:[ecx], esp
xor eax, eax
mov dword [ebp - 0x18], eax
mov esi, 0x829350
lea edi, [ebp - 0x2ac]
mov ecx, 0x1e
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x238], eax
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x234]
mov ecx, 0x1d0
mov edx, 0x3e
call fcn.004f33e0
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f165a
mov byte [ebp - 0xd], 1
call fcn.00404628
jmp 0x4f235d
cmp dword [ebp - 8], 0
je 0x4f1689
mov eax, dword [ebp - 8]
cmp eax, dword [ebp - 4]
je 0x4f1689
mov ecx, dword [ebp + 0x20]
mov ecx, dword [ecx + 0x28]
lea eax, [ebp - 0x234]
mov edx, dword [ebp - 8]
call fcn.004f11ec
lea eax, [ebp - 0x234]
xor edx, edx
call fcn.004f36a8
mov ecx, dword [ebp + 0x20]
mov ecx, dword [ecx + 0x28]
lea eax, [ebp - 0x234]
mov edx, dword [ebp - 4]
call fcn.004f11ec
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f16b6
mov byte [ebp - 0xd], 1
call fcn.00404628
jmp 0x4f235d
xor eax, eax
push ebp
push 0x4f171f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x514], 0
jne 0x4f1707
lea eax, [ebp - 0x234]
mov ecx, 0xffff
mov edx, 0xfe
call fcn.004ff42c
mov ebx, 0xe0
lea eax, [ebp - 0x234]
mov ecx, 0xffff
mov edx, ebx
call fcn.004ff42c
inc ebx
cmp ebx, 0xf0
jne 0x4f16ec
lea eax, [ebp - 0x234]
or edx, 0xffffffff
call fcn.004f36a8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f177b
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f1794
mov byte [ebp - 0xd], 1
call fcn.00404628
jmp 0x4f235d
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [eax + 8], 8
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xd0], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0xd4], edx
mov eax, dword [ebp - 0x20c]
mov dword [ebp - 0x208], eax
mov eax, dword [ebp - 0x20c]
cmp eax, 5
ja case.0x4f17d5.0
jmp dword [eax*4 + 0x4f17dc]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0xc4], 0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [eax + 0x10], 3
jmp case.0x4f17d5.0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0xc4], 1
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [eax + 0x10], 1
jmp case.0x4f17d5.0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0xc4], 2
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [eax + 0x10], 3
mov dword [ebp - 0x208], 2
cmp byte [ebp + 0x1c], 0
jne case.0x4f17d5.0
cmp byte [ebp + 0x18], 0
jne case.0x4f17d5.0
mov al, byte [ebp + 0x14]
or al, byte [ebp + 8]
je case.0x4f17d5.0
mov eax, dword [ebp - 0x15c]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 8]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov dword [edx + 0xd0], eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0xc]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov dword [edx + 0xd4], eax
jmp case.0x4f17d5.0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0xc4], 3
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [eax + 0x10], 4
jmp case.0x4f17d5.0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov byte [eax + 0xc4], 4
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov dword [eax + 0x10], 4
mov dword [ebp - 0x208], 4
cmp byte [ebp + 0x18], 0
je 0x4f18dd
mov dword [ebp - 0x208], 3
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov al, byte [eax + 0xcc]
sub al, 1
jb 0x4f18f4
je 0x4f18fe
dec al
je 0x4f190a
jmp 0x4f1914
xor eax, eax
mov dword [ebp - 0x1ec], eax
jmp 0x4f1914
mov dword [ebp - 0x1ec], 1
jmp 0x4f1914
mov dword [ebp - 0x1ec], 2
mov al, byte [ebp - 0x116]
sub al, 2
jb 0x4f1922
je 0x4f1946
jmp 0x4f199e
movzx edx, word [ebp - 0x114]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.0061062c
movzx edx, word [ebp - 0x112]
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.0061065c
jmp 0x4f199e
movzx eax, word [ebp - 0x114]
mov dword [ebp - 0x2b0], eax
fild dword [ebp - 0x2b0]
fld xword [0x4f236c]
fdivp st(1)
call fcn.00403010
mov edx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.0061062c
movzx eax, word [ebp - 0x112]
mov dword [ebp - 0x2b0], eax
fild dword [ebp - 0x2b0]
fld xword [0x4f236c]
fdivp st(1)
call fcn.00403010
mov edx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.0061065c
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x524], 0
je 0x4f19d6
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x524]
call fcn.00402aa0
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x524], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
xor edx, edx
mov dword [eax + 0x528], edx
cmp dword [ebp - 0x158], 1
sbb eax, eax
inc eax
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov byte [edx + 0xe0], al
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x218]
mov dword [eax + 0xf4], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x214]
mov dword [eax + 0xf8], edx
mov dword [ebp - 0x204], 1
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
movzx eax, byte [eax + 0xe1]
cmp eax, 4
ja case.default.0x4f1a2c
jmp dword [eax*4 + 0x4f1a33]
mov dword [ebp - 0x200], 1
jmp case.default.0x4f1a2c
mov dword [ebp - 0x200], 2
jmp case.default.0x4f1a2c
mov dword [ebp - 0x200], 4
jmp case.default.0x4f1a2c
mov dword [ebp - 0x200], 8
jmp case.default.0x4f1a2c
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x14], 0
jle 0x4f1af1
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x18], 0
jle 0x4f1af1
xor eax, eax
mov dword [ebp - 0x20], eax
mov ebx, 3
mov ecx, ebx
mov eax, 1
shl eax, cl
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x218]
cdq
idiv dword [ebp - 0x24]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
cmp eax, dword [edx + 0x14]
jl 0x4f1ad9
mov eax, dword [ebp - 0x214]
cdq
idiv dword [ebp - 0x24]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
cmp eax, dword [edx + 0x18]
jl 0x4f1ad9
mov dword [ebp - 0x20], ebx
jmp 0x4f1adf
dec ebx
cmp ebx, 0xffffffff
jne 0x4f1aa0
mov ecx, dword [ebp - 0x20]
mov eax, 1
shl eax, cl
mov dword [ebp - 0x200], eax
jmp case.default.0x4f1a2c
mov dword [ebp - 0x200], 1
cmp byte [ebp + 8], 0
jne 0x4f1b12
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x200]
mov dword [eax + 0xe8], edx
xor eax, eax
push ebp
push 0x4f1b35
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x234]
call fcn.004f4b44
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f1b57
mov byte [ebp - 0xd], 1
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
je 0x4f1b70
call fcn.00404628
jmp 0x4f235d
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c4]
mov dword [eax + 0x14], edx
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x1c0]
mov dword [eax + 0x18], edx
cmp byte [ebp + 0x1c], 0
je 0x4f1b9c
call fcn.00404628
jmp 0x4f235d
mov eax, dword [ebp - 0x1c4]
shl eax, 2
call fcn.00402a80
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x520], 0
je 0x4f1c65
mov eax, dword [ebp - 0x208]
cmp eax, 5
ja case.0x4f1bce.0
jmp dword [eax*4 + 0x4f1bd5]
push 3
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f1bce.0
push 5
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f1bce.0
push 5
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f1bce.0
push 7
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f1bce.0
push 5
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x24]
jmp case.0x4f1bce.0
push 5
mov ecx, dword [ebp - 0x1c0]
mov edx, dword [ebp - 0x1c4]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0x24]
cmp dword [ebp - 0x208], 4
jne 0x4f1d3e
cmp byte [ebp - 0x45], 0
jne 0x4f1d3e
mov eax, dword [0x83f404]
cmp byte [eax], 0
je 0x4f1d3e
cmp dword [ebp - 0x4c], 0
jne 0x4f1d3e
cmp dword [ebp - 0x50], 0
jne 0x4f1d3e
cmp dword [ebp - 8], 0
jne 0x4f1d3e
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f1d3e
cmp byte [ebp + 0x1c], 0
jne 0x4f1d3e
cmp byte [ebp + 0x18], 0
jne 0x4f1d3e
cmp byte [ebp + 0x14], 0
je 0x4f1d3e
cmp dword [ebp - 0x1c4], 1
jbe 0x4f1d3e
cmp dword [ebp - 0x1c0], 1
jbe 0x4f1d3e
cmp dword [ebp - 0x200], 1
je 0x4f1d04
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0x518], 0
je 0x4f1d1d
push 0
push 0
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
call fcn.004f1270
mov byte [ebp - 0x45], al
jmp 0x4f1d3e
mov eax, dword [ebp - 0x1c4]
push eax
mov eax, dword [ebp - 0x1c0]
push eax
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx]
mov edx, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
call fcn.004f1270
mov byte [ebp - 0x45], al
cmp byte [ebp - 0x45], 0
jne 0x4f205d
mov eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x2b8], eax
xor eax, eax
mov dword [ebp - 0x2b4], eax
fild qword [ebp - 0x2b8]
fdivr dword [0x4f2378]
mov eax, dword [ebp + 0x20]
fstp qword [eax + 0x18]
wait
mov eax, dword [ebp + 0x20]
xor edx, edx
mov dword [eax + 0xc], edx
xor ecx, ecx
push ebp
push 0x4f2020
push dword fs:[ecx]
mov dword fs:[ecx], esp
xor ebx, ebx
mov esi, 1
jmp 0x4f1ff8
mov edx, ebx
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
call dword [ecx]
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x208]
dec eax
je 0x4f1dc0
dec eax
je 0x4f1f20
dec eax
je 0x4f1e37
dec eax
je 0x4f1e7a
jmp 0x4f1fba
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 3
jne 0x4f1de6
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
jmp 0x4f1fba
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c4]
dec edx
test edx, edx
jl 0x4f1fba
inc edx
mov dword [ebp - 0x64], edx
mov edx, dword [ebp - 0x1c]
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 - 0x1c], 3
dec dword [ebp - 0x64]
jne 0x4f1e17
jmp 0x4f1fba
cmp byte [ebp + 0x18], 0
je 0x4f1fba
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
cmp dword [ebp - 0x20c], 2
jne 0x4f1fba
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, dword [ebp - 0x14]
call fcn.005e8f30
jmp 0x4f1fba
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x10]
cmp al, 5
jne 0x4f1ef7
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f2016
cmp byte [ebp + 0x10], 0
je 0x4f1ed1
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c4]
shl edx, 2
dec edx
test edx, edx
jl 0x4f1ed1
inc edx
mov dword [ebp - 0x64], edx
mov dl, 0xff
sub dl, byte [eax]
mov byte [eax], dl
inc eax
dec dword [ebp - 0x64]
jne 0x4f1ec5
push 1
mov eax, dword [ebp - 0x1c4]
push eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
push eax
mov edi, dword [0x83f794]
mov edi, dword [edi]
mov ecx, dword [ebp - 0x14]
mov dl, 2
mov eax, dword [ebp - 0x18]
call edi
jmp 0x4f1fba
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f2016
jmp 0x4f1fba
cmp byte [ebp - 0x39], 0
je 0x4f1f8a
lea edx, [ebp - 0x18]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
cmp dword [ebp - 0x20c], 2
jne 0x4f1f67
push 1
mov eax, dword [ebp - 0x1c4]
push eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
push eax
mov edi, dword [0x83f794]
mov edi, dword [edi]
mov ecx, dword [ebp - 0x14]
xor edx, edx
mov eax, dword [ebp - 0x18]
call edi
jmp 0x4f1fba
push 1
mov eax, dword [ebp - 0x1c4]
push eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
push eax
mov edi, dword [0x83f794]
mov edi, dword [edi]
mov ecx, dword [ebp - 0x14]
mov dl, 1
mov eax, dword [ebp - 0x18]
call edi
jmp 0x4f1fba
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x234]
mov ecx, 1
call fcn.004f4ce0
mov esi, eax
cmp dword [ebp - 0x20c], 2
jne 0x4f1fba
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0xc]
mov edx, eax
mov eax, dword [ebp - 0x14]
call fcn.005e8f30
add ebx, esi
mov eax, dword [ebp + 0x20]
add dword [eax + 0xc], esi
mov eax, dword [ebp + 0x20]
cmp word [eax + 2], 0
je 0x4f1fed
mov eax, dword [ebp + 0x20]
fild dword [eax + 0xc]
mov eax, dword [ebp + 0x20]
fmul qword [eax + 0x18]
call fcn.00403010
mov ecx, eax
mov edi, dword [ebp + 0x20]
mov edx, dword [ebp + 0x20]
mov edx, dword [edx + 8]
mov eax, dword [edi + 4]
call dword [edi]
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f2016
mov eax, dword [ebp - 0x1a8]
cmp eax, dword [ebp - 0x1c0]
jae 0x4f2016
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 8]
cmp ebx, eax
jl 0x4f1d91
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f2042
cmp ebx, dword [ebp - 0x1c0]
jge 0x4f205d
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
mov byte [eax], 1
call fcn.00404628
jmp 0x4f235d
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f235d
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0xe4]
call fcn.0062d880
mov esi, dword [ebp - 0x104]
xor ebx, ebx
test esi, esi
je 0x4f20ba
mov al, byte [esi + 4]
cmp al, 0xe0
setne dl
or dl, bl
je 0x4f20ac
mov dx, word [esi + 0xc]
push edx
mov ecx, dword [esi + 0x10]
mov edx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0xe4]
call fcn.0062d7c4
cmp byte [esi + 4], 0xe0
jne 0x4f20b4
mov bl, 1
mov esi, dword [esi]
test esi, esi
jne 0x4f2086
mov al, byte [ebp + 0xc]
and al, byte [ebp - 0x39]
je 0x4f210b
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.00610728
cmp byte [eax + 0x18], 0
je 0x4f210b
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.00610728
call fcn.00642d38
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0xe4]
mov dl, 0xe2
call fcn.0062d790
cmp eax, 0xffffffff
je 0x4f210b
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov edx, dword [edx + 0xe4]
xchg edx, eax
call fcn.0062d8bc
jmp 0x4f20e1
mov al, byte [ebp + 0xc]
and al, byte [ebp - 0x3a]
je 0x4f2149
cmp byte [ebp + 0x1c], 0
jne 0x4f2149
cmp byte [ebp + 0x14], 0
je 0x4f2149
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0xe4]
mov dl, 0xe2
call fcn.0062d790
cmp eax, 0xffffffff
je 0x4f2149
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov edx, dword [edx + 0xe4]
xchg edx, eax
call fcn.0062d8bc
jmp 0x4f211f
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f2195
cmp byte [ebp + 0x1c], 0
jne 0x4f2195
xor eax, eax
mov dword [ebp - 0x238], eax
xor eax, eax
push ebp
push 0x4f218b
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp - 0x45], 0
jne 0x4f2181
lea eax, [ebp - 0x234]
call fcn.004f3828
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4f2195
lea eax, [ebp - 0x234]
call fcn.004f34b0
cmp dword [ebp - 0x18], 0
je 0x4f21ae
mov eax, dword [ebp - 0x18]
call fcn.00402aa0
mov eax, dword [ebp - 0x234]
cmp dword [eax + 0x70], 0
je 0x4f21e2
mov eax, dword [ebp - 0x234]
mov eax, dword [eax + 0x70]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov dword [edx + 0xec], eax
mov eax, dword [ebp - 0x234]
mov eax, dword [eax + 0x14]
mov edx, dword [ebp + 0x24]
mov edx, dword [edx]
mov dword [edx + 0xf0], eax
lea eax, [ebp - 0x234]
call fcn.004f1254
cmp byte [ebp + 0x14], 0
je 0x4f2352
cmp byte [ebp - 0x5d], 0
jne 0x4f2352
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov esi, dword [eax + 0xe4]
mov dl, 0xed
mov eax, esi
call fcn.0062d790
mov ebx, eax
test ebx, ebx
jl 0x4f2244
mov edx, ebx
mov eax, esi
call fcn.0062d778
movzx eax, ax
push eax
mov edx, ebx
mov eax, esi
call fcn.0062d74c
mov edx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x16c]
pop ecx
call fcn.0062e064
mov dl, 0xe1
mov eax, esi
call fcn.0062d790
mov ebx, eax
test ebx, ebx
jl 0x4f2352
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x44], eax
mov edx, ebx
mov eax, esi
call fcn.0062d778
movzx eax, ax
push eax
mov edx, ebx
mov eax, esi
call fcn.0062d74c
mov ecx, dword [ebp + 0x24]
mov ecx, dword [ecx]
pop edx
call fcn.00632cc0
test al, al
je 0x4f2352
cmp dword [ebp - 0x40], 1
jne 0x4f230c
cmp dword [ebp - 0x44], 1
jne 0x4f230c
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp dword [eax + 0x2c0], 3
jne 0x4f22c0
mov dword [ebp - 0x38], 0x851eb852
mov dword [ebp - 0x34], 0x400451eb
jmp 0x4f22cc
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], 0x3ff00000
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
fld qword [eax + 0x2b0]
fmul qword [ebp - 0x38]
call fcn.00403010
mov edx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.0061062c
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
fld qword [eax + 0x2b8]
fmul qword [ebp - 0x38]
call fcn.00403010
mov edx, eax
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
call fcn.0061065c
jmp 0x4f2326
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x40]
call fcn.0061062c
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [ebp - 0x44]
call fcn.0061065c
mov eax, dword [ebp + 0x20]
mov eax, dword [eax + 0x28]
cmp byte [eax], 0
jne 0x4f2352
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
cmp byte [eax + 0xfc], 0
je 0x4f2352
mov eax, dword [ebp + 0x24]
mov eax, dword [eax]
mov edx, dword [eax + 0x2a8]
mov eax, dword [ebp - 0xc]
call fcn.006436f8
ret
mov al, byte [ebp - 0xd]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20