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

Disassembly:
sub esp, 0x70
push esi
push edi
mov edi, dword [esp + 0x8c]
mov esi, 1
mov dword [esp + 0x38], 0
cmp dword [edi + 0x4d4], esi
jne 0x100ac4e0
cmp dword [edi + 0x4e0], 8
jne 0x100ac4e0
cmp word [edi + 0x464], 0
je 0x100ac4e0
cmp word [edi + 0x476], 0
je 0x100ac4e0
cmp word [edi + 0x488], 0
je 0x100ac4e0
cmp dword [esp + 0x90], 0
je 0x100ac4d8
cmp dword [esp + 0x94], 0
je 0x100ac4d8
cmp dword [esp + 0xac], 0
mov eax, dword [edi + 0x4ec]
mov ecx, eax
mov dword [esp + 0x40], eax
jne 0x100ab578
add ecx, 3
and ecx, 0xfffffffc
mov dword [esp + 0x40], ecx
push ebx
mov ebx, dword [edi + 0x4e8]
push ebp
mov ebp, eax
mov dword [esp + 0x38], ebx
mov dword [esp + 0x44], ebp
test ebx, ebx
je 0x100ac4cb
test ebp, ebp
je 0x100ac4cb
mov ax, word [esp + 0x8c]
test ax, ax
jbe 0x100ab614
movzx ecx, ax
cmp ecx, ebp
jge 0x100ab614
mov ax, word [esp + 0x90]
test ax, ax
jbe 0x100ab614
movzx eax, ax
cmp eax, ebx
jge 0x100ab614
fild dword [esp + 0x44]
mov ebp, ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x30], eax
fidiv dword [esp + 0x1c]
mov dword [esp + 0x40], esi
fst qword [esp + 0x78]
fild dword [esp + 0x38]
fidiv dword [esp + 0x30]
fst qword [esp + 0x70]
fcom st(1)
fnstsw ax
test ah, 5
jp 0x100ab604
fstp st(0)
call fcn.1012b4f0
mov esi, eax
inc esi
mov dword [esp + 0x2c], esi
jmp 0x100ab684
fstp st(1)
call fcn.1012b4f0
mov esi, eax
inc esi
mov dword [esp + 0x2c], esi
jmp 0x100ab684
mov ecx, dword [esp + 0x88]
test ecx, ecx
jbe 0x100ab654
mov eax, ebp
imul eax, ebx
xor edx, edx
div ecx
mov dword [esp + 0x78], eax
fild dword [esp + 0x78]
test eax, eax
jge 0x100ab63a
fadd qword [0x101470e8]
call fcn.10037bb0
call fcn.1012b4f0
mov esi, eax
cmp esi, 1
mov dword [esp + 0x2c], esi
jge 0x100ab65a
mov esi, 1
mov dword [esp + 0x2c], esi
jmp 0x100ab65c
jne 0x100ab667
mov dword [esp + 0xbc], 0
mov eax, esi
imul eax, esi
mov dword [esp + 0x78], eax
mov eax, ebp
cdq
idiv esi
mov ebp, eax
mov dword [esp + 0x1c], eax
mov eax, ebx
cdq
idiv esi
mov dword [esp + 0x30], eax
cmp dword [esp + 0xc0], 0
je 0x100ab697
lea eax, [ebp + ebp*2 + 3]
and eax, 0xfffffffc
jmp 0x100ab69b
lea eax, [ebp + ebp*2]
imul esi, dword [esp + 0x48]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
cmp dword [eax], 0
jne 0x100ab6c5
push eax
call fcn.10009b30
movzx eax, ax
add esp, 4
test ax, ax
jne 0x100ab78a
lea ecx, [esp + 0x14]
push ecx
call fcn.10009b30
movzx eax, ax
add esp, 4
test ax, ax
jne 0x100ab78a
mov edx, dword [esp + 0x14]
push esi
push edx
call fcn.10009ed0
add esp, 8
mov dword [esp + 0x54], eax
test eax, eax
je 0x100ac4c1
cmp dword [esp + 0xbc], 0
je 0x100ab792
mov ecx, dword [esp + 0x14]
lea esi, [ebp + ebp]
push esi
push ecx
call fcn.10009ed0
mov edx, dword [esp + 0x1c]
push esi
push edx
mov dword [esp + 0x4c], eax
call fcn.10009ed0
mov ebx, eax
mov eax, dword [esp + 0x24]
push esi
push eax
mov dword [esp + 0x30], ebx
call fcn.10009ed0
add esp, 0x18
cmp dword [esp + 0x3c], 0
mov dword [esp + 0x4c], eax
je 0x100ac4c1
test ebx, ebx
je 0x100ac4c1
test eax, eax
je 0x100ac4c1
cmp dword [esp + 0x40], 0
je 0x100ab85b
mov ecx, dword [esp + 0x14]
push esi
push ecx
call fcn.10009ed0
add esp, 8
mov dword [esp + 0x5c], eax
test eax, eax
jne 0x100ab796
mov edx, dword [esp + 0x14]
push edx
call fcn.10009d90
add esp, 4
mov eax, 0x66
pop ebp
pop ebx
pop edi
pop esi
add esp, 0x70
ret
mov ebx, dword [esp + 0x18]
cmp dword [esp + 0x40], 0
je 0x100ab85b
mov edx, dword [esp + 0x14]
lea ecx, [ebp*4 + 4]
push ecx
push edx
call fcn.10009ed0
mov edx, dword [esp + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x38]
lea ecx, [eax*4 + 4]
push ecx
push edx
mov dword [esp + 0x60], esi
call fcn.10009ed0
add esp, 0x10
mov dword [esp + 0x58], eax
test esi, esi
je 0x100ab9dc
test eax, eax
je 0x100ab9dc
xor esi, esi
mov dword [esp + 0x10], esi
test ebp, ebp
jle 0x100ab811
fld qword [esp + 0x78]
fild dword [esp + 0x10]
fmul st(1)
call fcn.1012b4f0
mov ecx, dword [esp + 0x50]
mov dword [ecx + esi*4], eax
inc esi
cmp esi, ebp
mov dword [esp + 0x10], esi
jl 0x100ab7f4
fstp st(0)
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
xor esi, esi
cmp dword [esp + 0x30], esi
mov dword [eax + ebp*4], edx
mov dword [esp + 0x10], esi
jle 0x100ab84c
fld qword [esp + 0x70]
mov ebp, dword [esp + 0x58]
fild dword [esp + 0x10]
fmul st(1)
call fcn.1012b4f0
mov dword [ebp + esi*4], eax
inc esi
cmp esi, dword [esp + 0x30]
mov dword [esp + 0x10], esi
jl 0x100ab830
fstp st(0)
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
mov dword [edx + eax*4], ecx
mov esi, dword [esp + 0x34]
imul esi, dword [esp + 0x30]
cmp dword [esp + 0xb8], 0
mov dword [esp + 0x6c], esi
je 0x100ab87e
mov edx, dword [esp + 0x98]
cmp dword [edx], 0
jne 0x100ab8a8
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx]
lea eax, [esi + 0x4ac]
push eax
push edx
call fcn.10009ed0
mov ecx, dword [esp + 0xa0]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x100ab778
mov eax, dword [esp + 0x98]
mov ecx, dword [eax]
mov edx, dword [esp + 0x9c]
lea eax, [ecx + esi + 0x80]
mov dword [edx], eax
test eax, eax
je 0x100ac4c1
cmp dword [edi + 0x4e4], 0
mov ebp, 1
jl 0x100ab8e7
mov eax, dword [edi + 0x4e4]
inc eax
mov edi, edi
add ebp, ebp
sub eax, 1
jne 0x100ab8e0
mov ecx, dword [esp + 0x14]
lea esi, [ebp + ebp]
push esi
push ecx
call fcn.10009ed0
mov edx, dword [esp + 0x1c]
push esi
push edx
mov dword [esp + 0x38], eax
call fcn.10009ed0
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
push esi
push eax
call fcn.10009ed0
add esp, 0x18
cmp dword [esp + 0x28], 0
mov dword [esp + 0x20], eax
je 0x100ac4c1
cmp dword [esp + 0x24], 0
je 0x100ac4c1
test eax, eax
je 0x100ac4c1
xor eax, eax
xor ecx, ecx
cmp word [edi + 0x468], 8
jne 0x100ab9e6
mov esi, dword [edi + 0x46a]
mov dword [esp + 0x10], esi
cmp cx, word [edi + 0x466]
jae 0x100ab978
mov ecx, dword [esp + 0x28]
cmp eax, ebp
jge 0x100ab978
xor edx, edx
mov word [ecx + eax*2], dx
movzx edx, word [edi + 0x466]
inc eax
cmp eax, edx
jl 0x100ab962
movzx ecx, word [edi + 0x464]
mov edx, 0x10000
test cx, cx
je 0x100ab98c
movzx edx, cx
xor ecx, ecx
test edx, edx
jle 0x100ab9b5
cmp eax, ebp
jge 0x100aba6b
movzx si, byte [ecx + esi]
mov ebx, dword [esp + 0x28]
mov word [ebx + eax*2], si
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, edx
jl 0x100ab992
cmp eax, ebp
jge 0x100aba6b
mov ecx, dword [esp + 0x28]
movzx edx, word [edi + 0x464]
movzx dx, byte [edx + esi - 1]
mov word [ecx + eax*2], dx
inc eax
cmp eax, ebp
jl 0x100ab9c1
jmp 0x100aba6b
mov ecx, dword [esp + 0x14]
push ecx
jmp 0x100ab77d
cmp cx, word [edi + 0x466]
jae 0x100aba09
mov ecx, dword [esp + 0x28]
cmp eax, ebp
jge 0x100aba09
xor edx, edx
mov word [ecx + eax*2], dx
movzx edx, word [edi + 0x466]
inc eax
cmp eax, edx
jl 0x100ab9f3
movzx ecx, word [edi + 0x464]
mov edx, 0x10000
test cx, cx
je 0x100aba1d
movzx edx, cx
xor ecx, ecx
test edx, edx
jle 0x100aba43
mov esi, dword [esp + 0x28]
cmp eax, ebp
jge 0x100aba6b
mov ebx, dword [edi + 0x46a]
mov bx, word [ebx + ecx*2]
mov word [esi + eax*2], bx
mov ebx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, edx
jl 0x100aba27
cmp eax, ebp
jge 0x100aba6b
mov ecx, dword [esp + 0x28]
jmp 0x100aba50
movzx edx, word [edi + 0x464]
mov esi, dword [edi + 0x46a]
mov dx, word [esi + edx*2 - 2]
mov word [ecx + eax*2], dx
inc eax
cmp eax, ebp
jl 0x100aba50
xor eax, eax
xor ecx, ecx
cmp word [edi + 0x47a], 8
jne 0x100abb0e
mov esi, dword [edi + 0x47c]
mov dword [esp + 0x10], esi
cmp cx, word [edi + 0x478]
jae 0x100abaaa
mov ecx, dword [esp + 0x24]
cmp eax, ebp
jge 0x100abaaa
xor edx, edx
mov word [ecx + eax*2], dx
movzx edx, word [edi + 0x478]
inc eax
cmp eax, edx
jl 0x100aba94
movzx ecx, word [edi + 0x476]
mov edx, 0x10000
test cx, cx
je 0x100ababe
movzx edx, cx
xor ecx, ecx
test edx, edx
jle 0x100abae7
cmp eax, ebp
jge 0x100abb9b
movzx si, byte [ecx + esi]
mov ebx, dword [esp + 0x24]
mov word [ebx + eax*2], si
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, edx
jl 0x100abac4
cmp eax, ebp
jge 0x100abb9b
mov ecx, dword [esp + 0x24]
movzx edx, word [edi + 0x476]
movzx dx, byte [edx + esi - 1]
mov word [ecx + eax*2], dx
inc eax
cmp eax, ebp
jl 0x100abaf3
jmp 0x100abb9b
cmp cx, word [edi + 0x478]
jae 0x100abb36
mov ecx, dword [esp + 0x24]
jmp 0x100abb20
cmp eax, ebp
jge 0x100abb36
xor edx, edx
mov word [ecx + eax*2], dx
movzx edx, word [edi + 0x478]
inc eax
cmp eax, edx
jl 0x100abb20
movzx ecx, word [edi + 0x476]
mov edx, 0x10000
test cx, cx
je 0x100abb4a
movzx edx, cx
xor ecx, ecx
test edx, edx
jle 0x100abb70
mov esi, dword [esp + 0x24]
cmp eax, ebp
jge 0x100abb9b
mov ebx, dword [edi + 0x47c]
mov bx, word [ebx + ecx*2]
mov word [esi + eax*2], bx
mov ebx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, edx
jl 0x100abb54
cmp eax, ebp
jge 0x100abb9b
mov ecx, dword [esp + 0x24]
jmp 0x100abb80
movzx edx, word [edi + 0x476]
mov esi, dword [edi + 0x47c]
mov dx, word [esi + edx*2 - 2]
mov word [ecx + eax*2], dx
inc eax
cmp eax, ebp
jl 0x100abb80
xor eax, eax
xor ecx, ecx
cmp word [edi + 0x48c], 8
jne 0x100abc3e
mov esi, dword [edi + 0x48e]
mov dword [esp + 0x10], esi
cmp cx, word [edi + 0x48a]
jae 0x100abbda
mov ecx, dword [esp + 0x20]
cmp eax, ebp
jge 0x100abbda
xor edx, edx
mov word [ecx + eax*2], dx
movzx edx, word [edi + 0x48a]
inc eax
cmp eax, edx
jl 0x100abbc4
movzx ecx, word [edi + 0x488]
mov edx, 0x10000
test cx, cx
je 0x100abbee
movzx edx, cx
xor ecx, ecx
test edx, edx
jle 0x100abc17
cmp eax, ebp
jge 0x100abccb
movzx si, byte [ecx + esi]
mov ebx, dword [esp + 0x20]
mov word [ebx + eax*2], si
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, edx
jl 0x100abbf4
cmp eax, ebp
jge 0x100abccb
mov ecx, dword [esp + 0x20]
movzx edx, word [edi + 0x488]
movzx dx, byte [edx + esi - 1]
mov word [ecx + eax*2], dx
inc eax
cmp eax, ebp
jl 0x100abc23
jmp 0x100abccb
cmp cx, word [edi + 0x48a]
jae 0x100abc66
mov ecx, dword [esp + 0x20]
jmp 0x100abc50
cmp eax, ebp
jge 0x100abc66
xor edx, edx
mov word [ecx + eax*2], dx
movzx edx, word [edi + 0x48a]
inc eax
cmp eax, edx
jl 0x100abc50
movzx ecx, word [edi + 0x488]
mov edx, 0x10000
test cx, cx
je 0x100abc7a
movzx edx, cx
xor ecx, ecx
test edx, edx
jle 0x100abca0
mov esi, dword [esp + 0x20]
cmp eax, ebp
jge 0x100abccb
mov ebx, dword [edi + 0x48e]
mov bx, word [ebx + ecx*2]
mov word [esi + eax*2], bx
mov ebx, dword [esp + 0x18]
inc ecx
inc eax
cmp ecx, edx
jl 0x100abc84
cmp eax, ebp
jge 0x100abccb
mov ecx, dword [esp + 0x20]
jmp 0x100abcb0
movzx edx, word [edi + 0x488]
mov esi, dword [edi + 0x48e]
mov dx, word [esi + edx*2 - 2]
mov word [ecx + eax*2], dx
inc eax
cmp eax, ebp
jl 0x100abcb0
mov ecx, dword [esp + 0x28]
movzx eax, word [ecx]
mov edx, dword [esp + 0x20]
movzx edi, word [edx]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
movzx esi, word [eax]
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], edi
test ebp, ebp
jle 0x100abd45
mov esi, ecx
sub esi, eax
sub edx, eax
mov dword [esp + 0x60], ebp
lea ebx, [ebx]
movzx ecx, word [esi + eax]
cmp word [esp + 0x38], cx
jae 0x100abd12
movzx ecx, cx
mov dword [esp + 0x38], ecx
movzx ecx, word [eax]
cmp word [esp + 0x44], cx
jae 0x100abd23
movzx ecx, cx
mov dword [esp + 0x44], ecx
movzx ecx, word [edx + eax]
mov edi, dword [esp + 0x10]
cmp di, cx
jae 0x100abd37
movzx edi, cx
mov dword [esp + 0x10], edi
add eax, 2
sub dword [esp + 0x60], 1
jne 0x100abd00
mov esi, dword [esp + 0x44]
mov eax, dword [esp + 0x38]
cmp ax, si
movzx eax, ax
ja 0x100abd54
movzx eax, si
cmp ax, di
ja 0x100abd5c
movzx eax, di
mov edx, 0xff
cmp ax, dx
jbe 0x100abe51
movzx eax, ax
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fdivr qword [0x101470f0]
test ebp, ebp
jle 0x100abe4f
mov ecx, dword [esp + 0x24]
fld qword [0x10147038]
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x20]
sub edx, ecx
sub esi, ecx
movzx eax, word [ecx + edx]
fnstcw word [esp + 0x10]
mov dword [esp + 0x70], eax
movzx eax, word [esp + 0x10]
fild dword [esp + 0x70]
or eax, 0xc00
mov dword [esp + 0x70], eax
fmul st(2)
add ecx, 2
fadd st(1)
fldcw word [esp + 0x70]
fistp dword [esp + 0x70]
movzx eax, word [esp + 0x70]
mov word [ecx + edx - 2], ax
movzx eax, word [ecx - 2]
fldcw word [esp + 0x10]
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fnstcw word [esp + 0x10]
fmul st(2)
movzx eax, word [esp + 0x10]
or eax, 0xc00
mov dword [esp + 0x70], eax
fadd st(1)
fldcw word [esp + 0x70]
fistp dword [esp + 0x70]
movzx eax, word [esp + 0x70]
mov word [ecx - 2], ax
movzx eax, word [ecx + esi - 2]
fldcw word [esp + 0x10]
mov dword [esp + 0x70], eax
fild dword [esp + 0x70]
fnstcw word [esp + 0x10]
fmul st(2)
movzx eax, word [esp + 0x10]
or eax, 0xc00
sub ebp, 1
mov dword [esp + 0x70], eax
fadd st(1)
fldcw word [esp + 0x70]
fistp dword [esp + 0x70]
movzx eax, word [esp + 0x70]
mov word [ecx + esi - 2], ax
fldcw word [esp + 0x10]
jne 0x100abd99
fstp st(1)
fstp st(0)
mov ebp, dword [esp + 0x9c]
mov ecx, dword [ebp]
mov edi, dword [esp + 0x1c]
mov dword [ecx], 0x28
mov edx, dword [ebp]
mov dword [edx + 4], edi
mov eax, dword [ebp]
mov edx, dword [esp + 0x30]
mov dword [eax + 8], edx
mov ecx, dword [ebp]
mov eax, 1
mov word [ecx + 0xc], ax
mov ecx, dword [ebp]
xor esi, esi
mov eax, 0x18
mov word [ecx + 0xe], ax
mov ecx, dword [ebp]
mov dword [ecx + 0x10], esi
mov eax, dword [ebp]
mov ecx, dword [esp + 0x6c]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp]
mov dword [eax + 0x18], esi
mov ecx, dword [ebp]
mov dword [ecx + 0x1c], esi
mov eax, dword [ebp]
mov dword [eax + 0x24], esi
mov ecx, dword [ebp]
mov dword [ecx + 0x20], esi
xor eax, eax
lea esp, [esp]
mov ecx, dword [ebp]
mov byte [ecx + eax*4 + 0x2a], al
mov ecx, dword [ebp]
mov byte [ecx + eax*4 + 0x29], al
mov ecx, dword [ebp]
mov byte [ecx + eax*4 + 0x28], al
mov ecx, dword [ebp]
mov byte [ecx + eax*4 + 0x2b], 0
inc eax
cmp eax, 0x100
jl 0x100abec0
cmp dword [esp + 0xb4], esi
je 0x100abf07
mov ecx, dword [esp + 0x98]
lea eax, [edx - 1]
imul eax, dword [esp + 0x34]
add eax, dword [ecx]
mov ecx, dword [esp + 0x34]
neg ecx
jmp 0x100abf14
mov eax, dword [esp + 0x98]
mov eax, dword [eax]
mov ecx, dword [esp + 0x34]
cmp edx, esi
mov dword [esp + 0x70], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x10], esi
jle 0x100ac297
cmp dword [esp + 0x40], esi
je 0x100abf43
mov ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x10]
mov ebp, dword [ecx + eax*4 + 4]
sub ebp, dword [ecx + eax*4]
mov dword [esp + 0x2c], ebp
jmp 0x100abf47
mov ebp, dword [esp + 0x2c]
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x84]
mov esi, ebp
imul esi, dword [esp + 0x48]
push esi
push edx
push eax
call fcn.1000b880
add esp, 0xc
cmp eax, esi
jne 0x100ac2da
cmp dword [esp + 0xbc], 0
je 0x100ac1d5
mov edx, dword [esp + 0x3c]
mov ecx, dword [esp + 0x54]
lea esi, [edi + edi]
push esi
push 0
push edx
mov dword [esp + 0x44], ecx
call fcn.1002a420
push esi
push 0
push ebx
call fcn.1002a420
mov eax, dword [esp + 0x64]
push esi
push 0
push eax
call fcn.1002a420
add esp, 0x24
cmp dword [esp + 0x40], 0
je 0x100ac0fc
mov ecx, dword [esp + 0x5c]
push esi
push 0
push ecx
call fcn.1002a420
add esp, 0xc
test ebp, ebp
jle 0x100ac07f
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x6c], edx
xor ebp, ebp
cmp edi, ebp
mov dword [esp + 0x68], ebp
mov dword [esp + 0x64], ebp
jle 0x100ac06c
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x5c]
sub edx, ebx
sub esi, ebx
mov eax, ebx
sub edi, ebx
mov ebx, dword [esp + 0x50]
mov ecx, dword [ebx + ebp*4 + 4]
sub ecx, dword [ebx + ebp*4]
test ecx, ecx
jle 0x100ac056
mov ebp, dword [esp + 0x64]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x38]
movzx ecx, byte [ecx + ebp]
mov ebx, dword [esp + 0x28]
movzx ebx, word [ebx + ecx*2]
add word [edx + eax], bx
mov ebx, dword [esp + 0x24]
movzx ebx, word [ebx + ecx*2]
add word [eax], bx
mov ebx, dword [esp + 0x20]
mov cx, word [ebx + ecx*2]
add word [esi + eax], cx
inc word [edi + eax]
inc ebp
sub dword [esp + 0x60], 1
jne 0x100ac013
mov ebx, dword [esp + 0x50]
mov dword [esp + 0x64], ebp
mov ebp, dword [esp + 0x68]
inc ebp
add eax, 2
cmp ebp, dword [esp + 0x1c]
mov dword [esp + 0x68], ebp
jl 0x100ac000
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov edx, dword [esp + 0x48]
add dword [esp + 0x38], edx
sub dword [esp + 0x6c], 1
jne 0x100abfd6
test edi, edi
jle 0x100ac273
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
sub eax, ebp
sub edi, ebp
mov dword [esp + 0x68], eax
sub ebx, ebp
mov dword [esp + 0x6c], edx
lea ecx, [ecx]
movzx esi, word [eax + ebp]
test esi, esi
je 0x100ac0dd
movzx eax, word [ebp]
cdq
idiv esi
inc ecx
inc ecx
mov byte [ecx - 2], al
movzx eax, word [edi + ebp]
cdq
idiv esi
mov byte [ecx - 1], al
movzx eax, word [ebx + ebp]
cdq
idiv esi
mov byte [ecx], al
mov eax, dword [esp + 0x68]
jmp 0x100ac0e8
mov byte [ecx], 0
inc ecx
mov byte [ecx], 0
inc ecx
mov byte [ecx], 0
inc ecx
add ebp, 2
sub dword [esp + 0x6c], 1
jne 0x100ac0b0
mov ebx, dword [esp + 0x18]
jmp 0x100ac26f
test ebp, ebp
jle 0x100ac174
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
lea esp, [esp]
mov ebp, dword [esp + 0x2c]
xor eax, eax
xor ecx, ecx
test edi, edi
jle 0x100ac123
mov ecx, ebp
mov eax, edi
imul ecx, edi
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x3c]
add edx, ecx
lea ecx, [ecx]
movzx ecx, byte [edx]
mov edi, dword [esp + 0x28]
movzx edi, word [edi + ecx*2]
add word [esi + eax*2], di
mov edi, dword [esp + 0x24]
movzx edi, word [edi + ecx*2]
add word [ebx + eax*2], di
mov edi, dword [esp + 0x20]
movzx edi, word [edi + ecx*2]
mov ecx, dword [esp + 0x4c]
add word [ecx + eax*2], di
inc edx
sub ebp, 1
jne 0x100ac130
mov eax, dword [esp + 0x48]
add dword [esp + 0x38], eax
sub dword [esp + 0x6c], 1
mov edi, dword [esp + 0x1c]
jne 0x100ac110
test edi, edi
jle 0x100ac273
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x44]
sub esi, ebx
mov ebp, ebx
sub edi, ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x6c], edx
lea ebx, [ebx]
movzx eax, word [esi + ebp]
cdq
idiv ebx
inc ecx
inc ecx
inc ecx
add ebp, 2
mov byte [ecx - 3], al
movzx eax, word [ebp - 2]
cdq
idiv ebx
mov byte [ecx - 2], al
movzx eax, word [edi + ebp - 2]
cdq
idiv ebx
sub dword [esp + 0x6c], 1
mov byte [ecx - 1], al
jne 0x100ac1a0
mov ebx, dword [esp + 0x18]
jmp 0x100ac26f
cmp dword [esp + 0x40], 0
je 0x100ac232
xor ecx, ecx
xor esi, esi
test edi, edi
jle 0x100ac273
mov eax, dword [esp + 0x44]
lea esp, [esp]
mov edx, dword [esp + 0x54]
movzx ebp, byte [esi + edx]
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + ebp*2]
mov byte [eax], dl
mov edx, dword [esp + 0x24]
movzx edx, byte [edx + ebp*2]
mov byte [eax + 1], dl
mov edx, dword [esp + 0x28]
movzx edx, byte [edx + ebp*2]
inc eax
inc eax
mov byte [eax], dl
mov edx, dword [esp + 0x50]
mov edi, dword [edx + ecx*4 + 4]
sub edi, dword [edx + ecx*4]
inc ecx
add esi, edi
mov edi, dword [esp + 0x1c]
inc eax
cmp ecx, edi
jl 0x100ac1f0
jmp 0x100ac273
test edi, edi
jle 0x100ac273
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x54]
inc eax
mov ebp, edi
movzx ecx, byte [esi]
mov edx, dword [esp + 0x20]
movzx edx, byte [edx + ecx*2]
add esi, dword [esp + 0x2c]
mov byte [eax - 1], dl
mov edx, dword [esp + 0x24]
movzx edx, byte [edx + ecx*2]
mov byte [eax], dl
mov edx, dword [esp + 0x28]
mov cl, byte [edx + ecx*2]
mov byte [eax + 1], cl
add eax, 3
sub ebp, 1
jne 0x100ac241
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x70]
add dword [esp + 0x44], edx
inc eax
xor esi, esi
cmp eax, dword [esp + 0x30]
mov dword [esp + 0x10], eax
jl 0x100abf28
mov ebp, dword [esp + 0x9c]
mov ecx, dword [esp + 0x14]
push ecx
call fcn.10009d90
add esp, 4
cmp dword [esp + 0xa8], esi
je 0x100ac4b7
mov esi, dword [esp + 0xac]
test esi, esi
je 0x100ac4b7
mov ax, word [esp + 0xa0]
test ax, ax
jne 0x100ac2f4
pop ebp
pop ebx
pop edi
mov eax, 1
pop esi
add esp, 0x70
ret
mov eax, dword [esp + 0x14]
push eax
call fcn.10009d90
add esp, 4
pop ebp
pop ebx
pop edi
mov eax, 0xca
pop esi
add esp, 0x70
ret
mov edx, dword [ebp]
movzx ecx, ax
mov eax, dword [edx + 4]
cdq
idiv ecx
mov ecx, eax
cmp ecx, 1
jge 0x100ac30c
mov ecx, 1
mov eax, dword [esp + 0x30]
lea edx, [ecx + ecx*2]
mov dword [esp + 0x78], edx
cdq
idiv ecx
mov ebp, eax
mov eax, edi
cdq
idiv ecx
mov ebx, eax
mov eax, dword [esp + 0x34]
imul eax, ecx
cmp dword [esp + 0xc0], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x70], eax
je 0x100ac345
lea eax, [ebx + ebx*2 + 3]
and eax, 0xfffffffc
jmp 0x100ac348
lea eax, [ebx + ebx*2]
mov ecx, dword [esp + 0xb0]
mov edx, dword [ecx]
push 0x42c
push edx
mov dword [esp + 0x3c], eax
call fcn.10009ed0
add esp, 8
mov dword [esi], eax
test eax, eax
je 0x100ab785
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0xb0]
imul edi, ebp
mov edx, dword [ecx]
lea eax, [edi + 0x80]
push eax
push edx
call fcn.10009ed0
mov ecx, dword [esp + 0xb0]
add esp, 8
mov dword [ecx], eax
test eax, eax
je 0x100ab785
mov edx, dword [esi]
mov dword [edx], 0x28
mov eax, dword [esi]
mov dword [eax + 4], ebx
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], edi
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
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 0x100ac3e8
cmp ebp, ecx
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0x98]
mov edi, dword [eax]
mov edx, dword [edx]
jle 0x100ac460
inc edx
inc edi
test ebx, ebx
jle 0x100ac453
mov ecx, edi
mov eax, edx
mov esi, ebx
lea ebx, [ebx]
movzx ebx, byte [eax - 1]
mov byte [ecx - 1], bl
movzx ebx, byte [eax]
mov byte [ecx], bl
movzx ebx, byte [eax + 1]
add eax, dword [esp + 0x78]
mov byte [ecx + 1], bl
add ecx, 3
sub esi, 1
jne 0x100ac430
mov ebx, dword [esp + 0x1c]
add edi, dword [esp + 0x34]
add edx, dword [esp + 0x70]
sub ebp, 1
jne 0x100ac420
mov ecx, dword [esp + 0x94]
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 0x100ac4a4
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x70
ret
mov eax, dword [esp + 0x14]
push eax
jmp 0x100ab77d
pop ebp
pop ebx
pop edi
mov eax, 2
pop esi
add esp, 0x70
ret
pop edi
mov eax, esi
pop esi
add esp, 0x70
ret
pop edi
mov eax, 2
pop esi
add esp, 0x70
ret