Function at 0x100ae790
Capabilities:
Encrypt data using rc4 ksa
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [esp + 0x14]
sub esp, 0x7c
cmp dword [ecx + 0x4d4], 3
jne 0x100af818
cmp dword [ecx + 0x4e0], 8
jne 0x100af818
cmp dword [esp + 0x94], 0
push edi
je 0x100af80e
mov edi, dword [esp + 0x9c]
test edi, edi
je 0x100af80e
mov eax, dword [ecx + 0x4ec]
push ebp
push esi
mov esi, dword [ecx + 0x4e8]
mov ebp, eax
mov dword [esp + 0x68], eax
imul eax, esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebp
mov dword [esp + 0x84], eax
test esi, esi
je 0x100af802
test ebp, ebp
je 0x100af802
mov cx, word [esp + 0x94]
push ebx
mov dword [esp + 0x34], 0
test cx, cx
jbe 0x100ae88c
movzx edx, cx
cmp edx, ebp
jge 0x100ae88c
mov cx, word [esp + 0x9c]
test cx, cx
jbe 0x100ae88c
movzx ecx, cx
cmp ecx, esi
jge 0x100ae88c
fild dword [esp + 0x7c]
mov ebp, edx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x20], ecx
fidiv dword [esp + 0x14]
mov dword [esp + 0x34], 1
fst qword [esp + 0x80]
fild dword [esp + 0x78]
fidiv dword [esp + 0x20]
fst qword [esp + 0x70]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x100ae87c
fstp st(0)
call fcn.1012b4f0
mov ebx, eax
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x100ae8f4
fstp st(1)
call fcn.1012b4f0
mov ebx, eax
inc ebx
mov dword [esp + 0x18], ebx
jmp 0x100ae8f4
mov ecx, dword [esp + 0x94]
test ecx, ecx
jbe 0x100ae8c8
xor edx, edx
div ecx
mov dword [esp + 0x80], eax
fild dword [esp + 0x80]
test eax, eax
jge 0x100ae8b3
fadd qword [0x101470e8]
call fcn.10037bb0
call fcn.1012b4f0
mov ebx, eax
cmp ebx, 1
mov dword [esp + 0x18], ebx
jge 0x100ae8d3
mov ebx, 1
mov dword [esp + 0x18], ebx
jmp 0x100ae8d5
jne 0x100ae8e0
mov dword [esp + 0xc8], 0
mov eax, ebp
cdq
idiv ebx
mov ebp, eax
mov dword [esp + 0x14], eax
mov eax, esi
cdq
idiv ebx
mov dword [esp + 0x20], eax
cmp dword [esp + 0xcc], 0
je 0x100ae907
lea eax, [ebp + ebp*2 + 3]
and eax, 0xfffffffc
jmp 0x100ae90b
lea eax, [ebp + ebp*2]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xbc]
cmp dword [eax], 0
jne 0x100ae930
push eax
call fcn.10009b30
movzx eax, ax
add esp, 4
test ax, ax
jne 0x100af18f
lea ecx, [esp + 0x10]
push ecx
call fcn.10009b30
movzx eax, ax
add esp, 4
test ax, ax
jne 0x100af18f
cmp dword [esp + 0xc8], 0
je 0x100ae9bf
mov edx, dword [esp + 0x10]
lea esi, [ebp + ebp]
push esi
push edx
call fcn.10009ed0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
push esi
push eax
call fcn.10009ed0
mov ecx, dword [esp + 0x20]
push esi
push ecx
mov dword [esp + 0x54], eax
call fcn.10009ed0
mov edx, dword [esp + 0x28]
push esi
push edx
mov dword [esp + 0x60], eax
call fcn.10009ed0
add esp, 0x20
mov dword [esp + 0x48], eax
test eax, eax
je 0x100af1ce
cmp dword [esp + 0x38], 0
je 0x100af1ce
cmp dword [esp + 0x3c], 0
je 0x100af1ce
cmp dword [esp + 0x40], 0
je 0x100af1ce
cmp dword [esp + 0x34], 0
je 0x100aea88
mov edx, dword [esp + 0x10]
lea ecx, [ebp*4 + 4]
push ecx
push edx
call fcn.10009ed0
mov edx, dword [esp + 0x18]
mov esi, eax
mov eax, dword [esp + 0x28]
lea ecx, [eax*4 + 4]
push ecx
push edx
mov dword [esp + 0x5c], esi
call fcn.10009ed0
add esp, 0x10
mov dword [esp + 0x50], eax
test esi, esi
je 0x100aebc4
test eax, eax
je 0x100aebc4
xor esi, esi
mov dword [esp + 0x1c], esi
test ebp, ebp
jle 0x100aea3d
fld qword [esp + 0x80]
fild dword [esp + 0x1c]
fmul st(1)
call fcn.1012b4f0
mov ecx, dword [esp + 0x4c]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
mov dword [esp + 0x1c], esi
jl 0x100aea20
fstp st(0)
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x4c]
xor esi, esi
cmp dword [esp + 0x20], esi
mov dword [eax + ebp*4], edx
mov dword [esp + 0x1c], esi
jle 0x100aea77
fld qword [esp + 0x70]
fild dword [esp + 0x1c]
fmul st(1)
call fcn.1012b4f0
mov ecx, dword [esp + 0x50]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, dword [esp + 0x20]
mov dword [esp + 0x1c], esi
jl 0x100aea58
fstp st(0)
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x20]
mov dword [ecx + edx*4], eax
jmp 0x100aea8c
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x30]
xor ecx, ecx
imul esi, edx
cmp dword [esp + 0xc4], ecx
je 0x100aeaa9
mov eax, dword [esp + 0xa4]
cmp dword [eax], ecx
jne 0x100aead9
mov edx, dword [esp + 0xbc]
mov eax, dword [edx]
lea ecx, [esi + 0x4ac]
push ecx
push eax
call fcn.10009ed0
mov ecx, dword [esp + 0xac]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x100aebc4
mov edx, dword [esp + 0x20]
xor ecx, ecx
mov eax, dword [esp + 0xa4]
mov eax, dword [eax]
lea eax, [eax + esi + 0x80]
mov dword [edi], eax
cmp eax, ecx
je 0x100aebf4
mov dword [eax], 0x28
mov eax, dword [edi]
mov dword [eax + 4], ebp
mov eax, dword [edi]
mov dword [eax + 8], edx
mov eax, dword [edi]
mov ebp, 1
mov word [eax + 0xc], bp
mov eax, dword [edi]
mov ebp, 0x18
mov word [eax + 0xe], bp
mov eax, dword [edi]
mov dword [eax + 0x10], ecx
mov eax, dword [edi]
mov dword [eax + 0x14], esi
mov eax, dword [edi]
mov dword [eax + 0x18], ecx
mov eax, dword [edi]
mov dword [eax + 0x1c], ecx
mov eax, dword [edi]
mov dword [eax + 0x24], ecx
mov eax, dword [edi]
mov dword [eax + 0x20], ecx
xor eax, eax
lea esp, [esp]
mov esi, dword [edi]
mov byte [esi + eax*4 + 0x2a], al
mov esi, dword [edi]
mov byte [esi + eax*4 + 0x29], al
mov esi, dword [edi]
mov byte [esi + eax*4 + 0x28], al
mov esi, dword [edi]
mov byte [esi + eax*4 + 0x2b], 0
inc eax
cmp eax, 0x100
jl 0x100aeb40
cmp dword [esp + 0xc0], ecx
je 0x100aeb85
mov eax, dword [esp + 0x30]
lea esi, [edx - 1]
mov edx, dword [esp + 0xa4]
imul esi, eax
add esi, dword [edx]
neg eax
mov dword [esp + 0x78], eax
jmp 0x100aeb96
mov eax, dword [esp + 0xa4]
mov edx, dword [esp + 0x30]
mov esi, dword [eax]
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0xa0]
cmp dword [eax + 0x4d8], ecx
je 0x100af19e
imul ebx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x10]
push ebx
push ecx
call fcn.10009ed0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x100aebde
mov edx, dword [esp + 0x10]
push edx
call fcn.10009d90
add esp, 4
pop ebx
pop esi
pop ebp
mov eax, 0x66
pop edi
add esp, 0x7c
ret
mov eax, dword [esp + 0x10]
push ebx
push eax
call fcn.10009ed0
add esp, 8
mov dword [esp + 0x58], eax
test eax, eax
jne 0x100aec0e
mov ecx, dword [esp + 0x10]
push ecx
call fcn.10009d90
add esp, 4
pop ebx
pop esi
pop ebp
mov eax, 0x66
pop edi
add esp, 0x7c
ret
mov edx, dword [esp + 0x10]
push ebx
push edx
call fcn.10009ed0
add esp, 8
mov dword [esp + 0x54], eax
test eax, eax
je 0x100af1ce
mov ebx, dword [esp + 0x90]
push 1
push 0
push ebx
call fcn.1000c5c0
mov ecx, dword [esp + 0x94]
lea ebp, [eax + ecx]
add ecx, ebp
add esp, 0xc
cmp dword [esp + 0x20], 0
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], ebp
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], 0
jle 0x100af135
jmp 0x100aec7f
mov ebp, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
mov ebx, dword [esp + 0x90]
cmp dword [esp + 0x34], 0
je 0x100aec9b
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x1c]
mov esi, dword [edx + ecx*4 + 4]
sub esi, dword [edx + ecx*4]
mov dword [esp + 0x18], esi
jmp 0x100aec9f
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x6c]
imul esi, edi
push 0
push eax
push ebx
mov dword [esp + 0x88], esi
call fcn.1000c5c0
cmp dword [esp + 0xd4], 0
je 0x100aef8e
mov edx, dword [esp + 0x50]
push esi
push edx
push ebx
call fcn.1000b880
add esp, 0x18
cmp eax, edi
jne 0x100af17d
push 0
push ebp
push ebx
call fcn.1000c5c0
mov eax, dword [esp + 0x64]
push esi
push eax
push ebx
call fcn.1000b880
add esp, 0x18
cmp eax, edi
jne 0x100af5eb
mov ecx, dword [esp + 0x5c]
push 0
push ecx
push ebx
call fcn.1000c5c0
mov edx, dword [esp + 0x60]
push esi
push edx
push ebx
call fcn.1000b880
add esp, 0x18
cmp eax, edi
jne 0x100af197
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
add edi, edi
push edi
push 0
push eax
call fcn.1002a420
mov ecx, dword [esp + 0x48]
push edi
push 0
push ecx
call fcn.1002a420
mov edx, dword [esp + 0x58]
push edi
push 0
push edx
call fcn.1002a420
mov eax, dword [esp + 0x6c]
push edi
push 0
push eax
call fcn.1002a420
add esp, 0x30
cmp dword [esp + 0x18], 0
jle 0x100aee2d
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x88], ecx
xor ecx, ecx
cmp dword [esp + 0x14], ecx
mov dword [esp + 0x24], ecx
mov dword [esp + 0x60], ecx
jle 0x100aee1f
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x38]
sub edx, eax
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x48]
sub ebp, eax
sub edx, eax
mov dword [esp + 0x28], edx
cmp dword [esp + 0x34], 0
mov edi, dword [esp + 0x18]
je 0x100aedba
mov edx, dword [esp + 0x4c]
mov edi, dword [edx + ecx*4 + 4]
sub edi, dword [edx + ecx*4]
test edi, edi
jle 0x100aee11
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x54]
lea ecx, [edx + ebx]
mov edx, dword [esp + 0x44]
sub edx, ebx
sub esi, ebx
add dword [esp + 0x60], edi
mov dword [esp + 0x80], edi
mov edi, dword [esp + 0x70]
movzx ebx, byte [edx + ecx]
add word [eax + ebp], bx
movzx ebx, byte [ecx]
add word [eax], bx
movzx ebx, byte [esi + ecx]
add word [edi + eax], bx
mov ebx, dword [esp + 0x28]
inc word [ebx + eax]
inc ecx
sub dword [esp + 0x80], 1
jne 0x100aede4
mov ecx, dword [esp + 0x24]
inc ecx
add eax, 2
cmp ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
jl 0x100aeda4
sub dword [esp + 0x88], 1
jne 0x100aed72
cmp dword [esp + 0x14], 0
jle 0x100af103
mov ebp, dword [esp + 0x38]
fld qword [0x10147068]
mov eax, dword [esp + 0x48]
fld qword [0x10147070]
mov esi, dword [esp + 0x3c]
fld qword [0x101470f8]
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x2c]
sub eax, ebp
sub esi, ebp
sub ecx, ebp
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x70], eax
mov dword [esp + 0x88], ecx
jmp 0x100aee7d
mov eax, dword [esp + 0x70]
movzx eax, word [eax + ebp]
xor ebx, ebx
mov dword [esp + 0x80], eax
cmp eax, ebx
je 0x100aef2a
fild dword [esp + 0x80]
movzx edx, word [ebp]
movzx eax, word [esi + ebp]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x80], edx
movzx edx, word [ecx + ebp]
fild dword [esp + 0x80]
mov dword [esp + 0x80], eax
fdiv st(1)
fild dword [esp + 0x80]
mov dword [esp + 0x80], edx
fdiv st(2)
fild dword [esp + 0x80]
fdivrp st(3)
fxch st(2)
fsub st(3)
fld st(0)
fmul st(5)
fadd st(2)
call fcn.1012b4f0
fxch st(2)
fsub st(3)
mov dword [esp + 0x24], eax
fld st(0)
fmul st(6)
fsubr st(2)
fxch st(3)
fmul qword [0x10147060]
fsubp st(3)
fxch st(2)
call fcn.1012b4f0
fxch st(1)
fmul qword [0x10147058]
mov ebx, eax
faddp st(1)
call fcn.1012b4f0
mov ecx, dword [esp + 0x24]
test ecx, ecx
jge 0x100aef32
mov dword [esp + 0x24], 0
jmp 0x100aef42
mov dword [esp + 0x24], ebx
xor eax, eax
jmp 0x100aef6b
cmp ecx, 0xff
jle 0x100aef42
mov dword [esp + 0x24], 0xff
test ebx, ebx
jge 0x100aef4a
xor ebx, ebx
jmp 0x100aef57
cmp ebx, 0xff
jle 0x100aef57
mov ebx, 0xff
test eax, eax
jge 0x100aef5f
xor eax, eax
jmp 0x100aef6b
cmp eax, 0xff
jle 0x100aef6b
mov eax, 0xff
mov byte [edi], al
mov al, byte [esp + 0x24]
inc edi
mov byte [edi], bl
inc edi
mov byte [edi], al
inc edi
add ebp, 2
sub dword [esp + 0x88], 1
jne 0x100aee79
jmp 0x100af0fd
mov ecx, dword [esp + 0x50]
push edi
push ecx
push ebx
call fcn.1000b880
add esp, 0x18
cmp eax, edi
jne 0x100af17d
push 0
push ebp
push ebx
call fcn.1000c5c0
mov edx, dword [esp + 0x64]
push edi
push edx
push ebx
call fcn.1000b880
add esp, 0x18
cmp eax, edi
jne 0x100af5eb
mov eax, dword [esp + 0x5c]
push 0
push eax
push ebx
call fcn.1000c5c0
mov ecx, dword [esp + 0x60]
push edi
push ecx
push ebx
call fcn.1000b880
add esp, 0x18
cmp eax, edi
jne 0x100af197
xor ebp, ebp
xor esi, esi
cmp dword [esp + 0x14], ebp
jle 0x100af103
fld qword [0x10147060]
mov edi, dword [esp + 0x2c]
fld qword [0x10147068]
fld qword [0x10147070]
cmp dword [esp + 0x34], 0
je 0x100af01b
mov edx, dword [esp + 0x4c]
mov ebp, dword [edx + esi*4]
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + ebp]
mov edx, dword [esp + 0x44]
movzx eax, byte [edx + ebp]
add ecx, 0xffffff80
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
fld st(1)
fmul st(3)
fadd st(1)
call fcn.1012b4f0
mov ecx, dword [esp + 0x58]
movzx edx, byte [ecx + ebp]
add edx, 0xffffff80
mov dword [esp + 0x88], edx
mov ebx, eax
fild dword [esp + 0x88]
fld st(0)
fmul st(5)
fsubr st(2)
fxch st(3)
fmul st(6)
fsubp st(3)
fxch st(2)
call fcn.1012b4f0
fxch st(1)
fmul qword [0x10147058]
mov dword [esp + 0x28], eax
faddp st(1)
call fcn.1012b4f0
test ebx, ebx
jge 0x100af09e
xor ebx, ebx
jmp 0x100af0ab
cmp ebx, 0xff
jle 0x100af0ab
mov ebx, 0xff
mov ecx, dword [esp + 0x28]
test ecx, ecx
jge 0x100af0bd
mov dword [esp + 0x28], 0
jmp 0x100af0cd
cmp ecx, 0xff
jle 0x100af0cd
mov dword [esp + 0x28], 0xff
test eax, eax
jge 0x100af0d5
xor eax, eax
jmp 0x100af0e1
cmp eax, 0xff
jle 0x100af0e1
mov eax, 0xff
add ebp, dword [esp + 0x18]
mov byte [edi], al
mov al, byte [esp + 0x28]
inc edi
mov byte [edi], al
inc edi
mov byte [edi], bl
inc esi
inc edi
cmp esi, dword [esp + 0x14]
jl 0x100af00d
fstp st(0)
fstp st(0)
fstp st(0)
mov eax, dword [esp + 0x7c]
add dword [esp + 0x64], eax
add dword [esp + 0x68], eax
add dword [esp + 0x5c], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x78]
add dword [esp + 0x2c], ecx
inc eax
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jl 0x100aec70
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x10]
push ecx
call fcn.10009d90
add esp, 4
cmp dword [esp + 0xb4], 0
je 0x100af7f8
mov esi, dword [esp + 0xb8]
test esi, esi
je 0x100af7f8
mov ax, word [esp + 0xac]
test ax, ax
jne 0x100af5f5
pop ebx
pop esi
pop ebp
mov eax, 1
pop edi
add esp, 0x7c
ret
mov edx, dword [esp + 0x10]
push edx
call fcn.10009d90
mov eax, 0xca
add esp, 4
pop ebx
pop esi
pop ebp
pop edi
add esp, 0x7c
ret
mov ecx, dword [esp + 0x10]
push ecx
jmp 0x100af182
mov eax, dword [esp + 0x6c]
lea eax, [eax + eax*2]
mov ecx, ebx
imul ecx, eax
lea edx, [ebx + ebx*2]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x10]
push ecx
push edx
mov dword [esp + 0x88], eax
call fcn.10009ed0
add esp, 8
mov dword [esp + 0x44], eax
test eax, eax
jne 0x100af1e8
mov eax, dword [esp + 0x10]
push eax
call fcn.10009d90
add esp, 4
pop ebx
pop esi
pop ebp
mov eax, 0x66
pop edi
add esp, 0x7c
ret
cmp dword [esp + 0x20], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], 0
jle 0x100af135
mov ecx, dword [esp + 0x1c]
jmp 0x100af214
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x34], 0
mov eax, dword [esp + 0x50]
je 0x100af22a
mov ebx, dword [eax + ecx*4 + 4]
sub ebx, dword [eax + ecx*4]
mov dword [esp + 0x18], ebx
mov edi, dword [esp + 0x80]
mov ebp, dword [esp + 0x44]
mov edx, dword [esp + 0x90]
mov ecx, ebx
imul ecx, edi
push ecx
push ebp
push edx
call fcn.1000b880
add esp, 0xc
cmp eax, edi
jb 0x100af5eb
xor edi, edi
cmp dword [esp + 0xc8], edi
je 0x100af4a7
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
add edi, edi
push edi
push 0
push eax
mov esi, ebp
call fcn.1002a420
mov ecx, dword [esp + 0x48]
push edi
push 0
push ecx
call fcn.1002a420
mov edx, dword [esp + 0x58]
push edi
push 0
push edx
call fcn.1002a420
mov eax, dword [esp + 0x6c]
push edi
push 0
push eax
call fcn.1002a420
add esp, 0x30
test ebx, ebx
jle 0x100af361
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], ecx
xor ecx, ecx
cmp dword [esp + 0x14], ecx
mov dword [esp + 0x24], ecx
jle 0x100af34f
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x40]
mov ebp, dword [esp + 0x48]
sub edi, eax
sub edx, eax
sub ebp, eax
mov dword [esp + 0x70], edi
mov dword [esp + 0x28], ebp
jmp 0x100af2e6
mov ebp, dword [esp + 0x28]
cmp dword [esp + 0x34], 0
mov ebx, dword [esp + 0x18]
je 0x100af308
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
mov ebx, dword [edi + ebp*4 + 4]
sub ebx, dword [edi + ebp*4]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x70]
test ebx, ebx
jle 0x100af33d
mov dword [esp + 0x88], ebx
movzx ebx, byte [esi + ecx]
add word [eax + edx], bx
movzx ebx, byte [esi + ecx + 1]
add word [eax], bx
inc ecx
movzx ebx, byte [esi + ecx + 1]
add word [eax + edi], bx
inc word [eax + ebp]
inc ecx
inc ecx
sub dword [esp + 0x88], 1
jne 0x100af313
mov ebx, dword [esp + 0x24]
inc ebx
add eax, 2
cmp ebx, dword [esp + 0x14]
mov dword [esp + 0x24], ebx
jl 0x100af2e2
add esi, dword [esp + 0x80]
sub dword [esp + 0x7c], 1
jne 0x100af2b2
cmp dword [esp + 0x14], 0
jle 0x100af5c7
mov edi, dword [esp + 0x38]
fld qword [0x10147068]
mov eax, dword [esp + 0x48]
fld qword [0x10147070]
mov ebp, dword [esp + 0x3c]
fld qword [0x101470f8]
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
sub eax, edi
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x40]
sub ebp, edi
sub eax, edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x88], edx
mov eax, dword [esp + 0x70]
movzx eax, word [edi + eax]
xor ebx, ebx
mov dword [esp + 0x7c], eax
cmp eax, ebx
je 0x100af443
fild dword [esp + 0x7c]
movzx ecx, word [edi]
movzx edx, word [edi + ebp]
mov eax, dword [esp + 0x60]
mov dword [esp + 0x7c], ecx
movzx ecx, word [edi + eax]
fild dword [esp + 0x7c]
mov dword [esp + 0x7c], edx
fdiv st(1)
fild dword [esp + 0x7c]
mov dword [esp + 0x7c], ecx
fdiv st(2)
fild dword [esp + 0x7c]
fdivrp st(3)
fxch st(2)
fsub st(3)
fld st(0)
fmul st(5)
fadd st(2)
call fcn.1012b4f0
fxch st(2)
fsub st(3)
mov dword [esp + 0x24], eax
fld st(0)
fmul st(6)
fsubr st(2)
fxch st(3)
fmul qword [0x10147060]
fsubp st(3)
fxch st(2)
call fcn.1012b4f0
fxch st(1)
fmul qword [0x10147058]
mov ebx, eax
faddp st(1)
call fcn.1012b4f0
mov ecx, dword [esp + 0x24]
test ecx, ecx
jge 0x100af44b
mov dword [esp + 0x24], 0
jmp 0x100af45b
mov dword [esp + 0x24], ebx
xor eax, eax
jmp 0x100af484
cmp ecx, 0xff
jle 0x100af45b
mov dword [esp + 0x24], 0xff
test ebx, ebx
jge 0x100af463
xor ebx, ebx
jmp 0x100af470
cmp ebx, 0xff
jle 0x100af470
mov ebx, 0xff
test eax, eax
jge 0x100af478
xor eax, eax
jmp 0x100af484
cmp eax, 0xff
jle 0x100af484
mov eax, 0xff
mov dl, byte [esp + 0x24]
mov byte [esi], al
inc esi
mov byte [esi], bl
inc esi
mov byte [esi], dl
inc esi
add edi, 2
sub dword [esp + 0x88], 1
jne 0x100af3ab
jmp 0x100af5c1
cmp dword [esp + 0x14], edi
mov dword [esp + 0x24], edi
jle 0x100af5c7
fld qword [0x10147060]
fld qword [0x10147068]
fld qword [0x10147070]
movzx eax, byte [edi + ebp + 2]
movzx ecx, byte [edi + ebp]
add eax, 0xffffff80
mov dword [esp + 0x88], eax
fild dword [esp + 0x88]
mov dword [esp + 0x88], ecx
fild dword [esp + 0x88]
fld st(1)
fmul st(3)
fadd st(1)
call fcn.1012b4f0
movzx edx, byte [edi + ebp + 1]
add edx, 0xffffff80
mov dword [esp + 0x88], edx
mov ebx, eax
fild dword [esp + 0x88]
fld st(0)
fmul st(5)
fsubr st(2)
fxch st(3)
fmul st(6)
fsubp st(3)
fxch st(2)
call fcn.1012b4f0
fxch st(1)
fmul qword [0x10147058]
mov dword [esp + 0x28], eax
faddp st(1)
call fcn.1012b4f0
test ebx, ebx
jge 0x100af540
xor ebx, ebx
jmp 0x100af54d
cmp ebx, 0xff
jle 0x100af54d
mov ebx, 0xff
mov ecx, dword [esp + 0x28]
test ecx, ecx
jge 0x100af55f
mov dword [esp + 0x28], 0
jmp 0x100af56f
cmp ecx, 0xff
jle 0x100af56f
mov dword [esp + 0x28], 0xff
test eax, eax
jge 0x100af577
xor eax, eax
jmp 0x100af583
cmp eax, 0xff
jle 0x100af583
mov eax, 0xff
mov ecx, dword [esp + 0x24]
mov byte [esi], al
mov al, byte [esp + 0x28]
inc esi
mov byte [esi], al
inc esi
mov byte [esi], bl
inc esi
cmp dword [esp + 0x34], 0
je 0x100af5ae
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + ecx*4 + 4]
sub eax, dword [edx + ecx*4]
lea edx, [eax + edi]
lea edi, [edx + eax*2]
jmp 0x100af5b2
add edi, dword [esp + 0x68]
inc ecx
cmp ecx, dword [esp + 0x14]
mov dword [esp + 0x24], ecx
jl 0x100af4c7
fstp st(0)
fstp st(0)
fstp st(0)
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
add esi, dword [esp + 0x78]
inc ecx
cmp ecx, dword [esp + 0x20]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], ecx
jl 0x100af210
jmp 0x100af12e
mov eax, dword [esp + 0x10]
push eax
jmp 0x100af182
mov edx, dword [edi]
movzx ecx, ax
mov eax, dword [edx + 4]
cdq
idiv ecx
mov ecx, eax
cmp ecx, 1
jge 0x100af60c
mov ecx, 1
mov eax, dword [esp + 0x20]
lea edx, [ecx + ecx*2]
mov dword [esp + 0x70], edx
cdq
idiv ecx
mov ebp, eax
mov eax, dword [esp + 0x14]
cdq
idiv ecx
mov edi, eax
mov eax, dword [esp + 0x30]
imul eax, ecx
cmp dword [esp + 0xcc], 0
mov dword [esp + 0x14], edi
mov dword [esp + 0x7c], eax
je 0x100af647
lea eax, [edi + edi*2 + 3]
and eax, 0xfffffffc
jmp 0x100af64a
lea eax, [edi + edi*2]
mov ecx, dword [esp + 0xbc]
mov edx, dword [ecx]
push 0x42c
push edx
mov dword [esp + 0x38], eax
call fcn.10009ed0
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x100af1db
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0xbc]
imul ebx, ebp
mov edx, dword [ecx]
lea eax, [ebx + 0x80]
push eax
push edx
call fcn.10009ed0
mov ecx, dword [esp + 0xbc]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x100af1db
mov edx, dword [esi]
mov dword [edx], 0x28
mov eax, dword [esi]
mov dword [eax + 4], edi
mov ecx, dword [esi]
mov dword [ecx + 8], ebp
mov edx, dword [esi]
mov eax, 1
mov word [edx + 0xc], ax
mov ecx, dword [esi]
mov edx, 0x18
mov word [ecx + 0xe], dx
mov eax, dword [esi]
xor ecx, ecx
mov dword [eax + 0x10], ecx
mov edx, dword [esi]
mov dword [edx + 0x14], ebx
mov eax, dword [esi]
mov dword [eax + 0x18], ecx
mov edx, dword [esi]
mov dword [edx + 0x1c], ecx
mov eax, dword [esi]
mov dword [eax + 0x24], ecx
mov edx, dword [esi]
mov dword [edx + 0x20], ecx
xor eax, eax
lea ebx, [ebx]
mov edx, dword [esi]
mov byte [edx + eax*4 + 0x2a], al
mov edx, dword [esi]
mov byte [edx + eax*4 + 0x29], al
mov edx, dword [esi]
mov byte [edx + eax*4 + 0x28], al
mov edx, dword [esi]
mov byte [edx + eax*4 + 0x2b], cl
inc eax
cmp eax, 0x100
jl 0x100af6f0
cmp ebp, ecx
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0xb4]
mov esi, dword [edx]
mov eax, dword [eax]
mov dword [esp + 0x80], esi
jle 0x100af7a1
inc eax
mov dword [esp + 0x88], eax
lea edx, [esi + 1]
mov dword [esp + 0x78], ebp
lea esp, [esp]
test edi, edi
jle 0x100af779
mov ecx, eax
mov eax, edx
sub esi, edx
mov ebp, 1
nop
movzx ebx, byte [esi + eax]
mov byte [ecx - 1], bl
movzx ebx, byte [eax]
mov byte [ecx], bl
movzx ebx, byte [eax + ebp]
add eax, dword [esp + 0x70]
mov byte [ecx + 1], bl
add ecx, 3
sub edi, ebp
jne 0x100af750
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x80]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x7c]
add eax, dword [esp + 0x30]
add esi, ecx
add edx, ecx
sub dword [esp + 0x78], 1
mov dword [esp + 0x88], eax
mov dword [esp + 0x80], esi
jne 0x100af740
mov ecx, dword [esp + 0xa0]
fld qword [0x101470a0]
fstp qword [ecx + 0x40c]
xor eax, eax
fld qword [0x10147098]
mov edx, 0xff
fstp qword [ecx + 0x414]
mov dword [ecx + 0x404], eax
mov dword [ecx + 0x408], edx
mov dword [ecx + 0x42c], eax
mov dword [ecx + 0x430], edx
add ecx, 0x204
mov edx, eax
shl edx, 4
mov word [ecx], dx
inc eax
add ecx, 2
cmp eax, 0x100
jl 0x100af7e5
pop ebx
pop esi
pop ebp
xor eax, eax
pop edi
add esp, 0x7c
ret
pop esi
pop ebp
mov eax, 2
pop edi
add esp, 0x7c
ret
mov eax, 1
pop edi
add esp, 0x7c
ret
mov eax, 2
add esp, 0x7c
ret