Function at 0x413f40
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x400c0
call fcn.00442760
cmp dword [0x464a9c], 0
push ebx
push ebp
push esi
push edi
je 0x413f73
push str.AHD_interpolation..._n
call fcn.00434a96
add eax, 0x40
push eax
call fcn.00435780
add esp, 8
xor esi, esi
mov dword [esp + 0x4c], esi
lea esp, [esp]
fild dword [esp + 0x4c]
fdiv qword [0x4517b0]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fcom qword [0x4518b0]
fnstsw ax
test ah, 0x41
jne 0x413fac
fld qword [0x4518a8]
call fcn.00447b40
jmp 0x413fb8
fmul qword [0x4518a0]
fadd qword [0x451898]
fstp dword [esp + esi*4 + 0xd0]
inc esi
cmp esi, 0x10000
mov dword [esp + 0x4c], esi
jl 0x413f80
mov edi, dword [0x465c58]
fldz
lea ebx, [esp + 0xa0]
mov esi, 0x44de48
mov edx, 0x44de08
xor eax, eax
test edi, edi
jle 0x414034
mov ecx, ebx
fst dword [ecx]
inc eax
fld dword [eax*4 + 0x4ac35c]
add ecx, 4
cmp eax, edi
fmul qword [edx - 8]
fdiv dword [esi]
fadd dword [ecx - 4]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fld dword [eax*4 + 0x4ac36c]
fmul qword [edx]
fdiv dword [esi]
faddp st(1)
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fld dword [eax*4 + 0x4ac37c]
fmul qword [edx + 8]
fdiv dword [esi]
faddp st(1)
fstp dword [ecx - 4]
jl 0x413fed
add edx, 0x18
add esi, 4
add ebx, 0x10
cmp edx, 0x44de50
jl 0x413fe5
push 5
fstp st(0)
call fcn.00412b90
push 0x1a0000
call fcn.0043493c
add esp, 8
mov dword [esp + 0x34], eax
test eax, eax
je 0x414d97
movzx eax, word [0x4ac486]
add eax, 0xfffffffb
cmp eax, 2
mov dword [esp + 0x38], 2
mov dword [esp + 0x44], eax
jle 0x414d82
movzx eax, word [0x466040]
fld qword [0x451890]
fld qword [0x451888]
add eax, 0xfffffffb
fld qword [0x451880]
mov dword [esp + 0x4c], eax
fld qword [0x451820]
fld qword [0x451878]
mov eax, 2
cmp dword [esp + 0x4c], eax
mov dword [esp + 0x1c], eax
jle 0x414d61
mov eax, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
neg eax
mov dword [esp + 0x54], eax
jmp 0x4140e0
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x1c]
lea eax, [ecx + 0x100]
cmp ecx, eax
mov dword [esp + 0x24], ecx
jge 0x4142f1
movzx eax, word [0x4ac486]
add eax, 0xfffffffe
mov dword [esp + 0x48], eax
movzx eax, word [0x466040]
imul eax, ecx
mov dword [esp + 0x14], eax
mov eax, ebx
neg eax
mov dword [esp + 0x20], eax
cmp ecx, dword [esp + 0x48]
jge 0x4142f1
mov esi, dword [0x466120]
mov eax, ecx
and eax, 7
add eax, eax
mov ecx, ebx
and ecx, 1
add ecx, eax
add ecx, ecx
mov edx, esi
shr edx, cl
and edx, 1
add edx, ebx
mov ecx, edx
and ecx, 1
add ecx, eax
add ecx, ecx
shr esi, cl
lea eax, [ebx + 0x100]
mov dword [esp + 0x18], edx
and esi, 3
cmp edx, eax
jge 0x4142c0
movzx eax, word [0x466040]
add eax, 0xfffffffe
cmp edx, eax
jge 0x4142c0
mov eax, dword [esp + 0x14]
mov ecx, dword [0x4ac418]
add eax, edx
movzx ebx, word [ecx + eax*8 + 0xa]
lea eax, [ecx + eax*8]
movzx ecx, word [eax - 6]
movzx ebp, bx
add ecx, ebp
movzx ebp, word [eax + esi*2]
add ecx, ebp
movzx ebp, word [eax + esi*2 - 0x10]
add ecx, ecx
sub ecx, ebp
movzx ebp, word [eax + esi*2 + 0x10]
sub ecx, ebp
movzx ebp, word [eax - 6]
sar ecx, 2
cmp bp, bx
mov ebp, ecx
jae 0x4141d2
movzx ebx, word [eax + 0xa]
cmp ecx, ebx
jl 0x4141c4
mov ebp, ebx
movzx ebx, word [eax - 6]
cmp ebx, ebp
jg 0x4141ec
movzx ebx, word [eax + 0xa]
jmp 0x4141e8
movzx ebx, word [eax - 6]
cmp ecx, ebx
jl 0x4141dc
mov ebp, ebx
movzx ebx, word [eax + 0xa]
cmp ebx, ebp
jg 0x4141ec
movzx ebx, word [eax - 6]
cmp ecx, ebx
jl 0x4141ee
mov ecx, ebx
mov ebx, dword [esp + 0x20]
add edx, ebx
lea edx, [edx + edx*2]
mov word [edi + edx*2 + 2], cx
movzx ecx, word [0x466040]
lea edi, [edi + edx*2]
lea edx, [ecx*8]
movzx ebx, word [edx + eax + 2]
mov ecx, eax
sub ecx, edx
add ecx, 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x40], edi
movzx edi, word [ecx]
movzx ebp, di
movzx ecx, bx
add ecx, ebp
movzx ebp, word [eax + esi*2]
add ecx, ebp
lea ebp, [edx + esi]
movzx ebp, word [eax + ebp*2]
add ecx, ecx
sub ecx, ebp
mov ebp, esi
sub ebp, edx
movzx ebp, word [eax + ebp*2]
sub ecx, ebp
sar ecx, 2
cmp di, bx
jae 0x414273
movzx eax, word [edx + eax + 2]
cmp ecx, eax
mov edi, ecx
jl 0x41425c
mov edi, eax
mov edx, dword [esp + 0x10]
movzx edx, word [edx]
cmp edx, edi
jle 0x41426b
mov ecx, edx
jmp 0x414295
cmp ecx, eax
jl 0x414295
mov ecx, eax
jmp 0x414295
mov edi, dword [esp + 0x10]
movzx edi, word [edi]
cmp ecx, edi
mov ebx, ecx
jl 0x414282
mov ebx, edi
movzx eax, word [edx + eax + 2]
cmp eax, ebx
jle 0x41428f
mov ecx, eax
jmp 0x414295
cmp ecx, edi
jl 0x414295
mov ecx, edi
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x34]
mov word [eax + 0x60002], cx
mov eax, dword [esp + 0x1c]
add edx, 2
add eax, 0x100
cmp edx, eax
mov dword [esp + 0x18], edx
jl 0x414167
movzx eax, word [0x466040]
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x38]
add dword [esp + 0x20], 0x100
mov ebx, dword [esp + 0x1c]
inc ecx
add eax, 0x100
cmp ecx, eax
mov dword [esp + 0x24], ecx
jl 0x41411e
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], 2
mov ecx, dword [esp + 0x38]
lea eax, [ecx + 1]
add ecx, 0xff
cmp eax, ecx
mov dword [esp + 0x24], eax
jge 0x414791
movzx ecx, word [0x4ac486]
add ecx, 0xfffffffd
mov dword [esp + 0x48], ecx
movzx ecx, word [0x466040]
mov edx, ecx
imul edx, eax
mov dword [esp + 0x14], edx
lea edx, [eax*4 + 4]
mov dword [esp + 0x20], edx
cmp eax, dword [esp + 0x48]
jge 0x414791
lea edx, [ebx + 1]
lea esi, [ebx + 0xff]
cmp edx, esi
mov dword [esp + 0x18], edx
jge 0x414766
add ecx, 0xfffffffd
mov dword [esp + 0x50], ecx
jmp 0x41436f
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x50]
jge 0x414766
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov ecx, dword [0x4ac418]
mov ebp, dword [0x466120]
add eax, edx
lea edi, [ecx + eax*8]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x3c]
add eax, ecx
shl eax, 8
sub eax, dword [esp + 0x1c]
and ecx, 7
add eax, edx
and edx, 1
lea ecx, [edx + ecx*2]
lea ebx, [eax + eax*2]
mov eax, dword [esp + 0x34]
add ecx, ecx
shr ebp, cl
add ebx, ebx
lea esi, [ebx + eax]
mov eax, 2
and ebp, 3
sub eax, ebp
mov dword [esp + 0x10], ebx
cmp eax, 1
jne 0x41446e
mov ecx, dword [esp + 0x20]
mov eax, dword [0x466120]
and ecx, 0x1c
lea ecx, [ecx + edx*2]
shr eax, cl
mov ebx, edi
and eax, 3
lea ecx, [eax + eax + 4]
sub ebx, ecx
movzx ecx, word [ebx]
mov edx, eax
neg edx
movzx ebx, word [edi + edx*2 + 0xc]
add ecx, ebx
movzx ebx, word [esi + 8]
sub ecx, ebx
movzx ebx, word [esi - 4]
sub ecx, ebx
movzx ebx, word [edi + 2]
sar ecx, 1
add ecx, ebx
cmp ecx, 0xffff
jge 0x414427
xor ebx, ebx
test ecx, ecx
setl bl
dec ebx
and ecx, ebx
jmp 0x41442c
mov ecx, 0xffff
mov word [esi + edx*2 + 4], cx
movzx ecx, word [0x466040]
lea edx, [ecx*4]
lea ecx, [edx + eax]
movzx ecx, word [edi + ecx*2]
mov ebx, eax
sub ebx, edx
movzx edx, word [edi + ebx*2]
mov ebx, dword [esp + 0x10]
add ecx, edx
movzx edx, word [esi + 0x602]
sub ecx, edx
movzx edx, word [esi - 0x5fe]
sub ecx, edx
movzx edx, word [edi + 2]
sar ecx, 1
jmp 0x4144d7
movzx ecx, word [0x466040]
lea edx, [ecx*4]
mov ecx, eax
sub ecx, edx
mov dword [esp + 0x10], ecx
lea ecx, [edx + eax]
movzx ecx, word [edi + ecx*2 - 8]
add edx, eax
movzx edx, word [edi + edx*2 + 8]
add ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, word [edi + edx*2 - 8]
add ecx, edx
mov edx, dword [esp + 0x10]
movzx edx, word [edi + edx*2 + 8]
add ecx, edx
movzx edx, word [esi + 0x608]
sub ecx, edx
movzx edx, word [esi - 0x604]
sub ecx, edx
movzx edx, word [esi + 0x5fc]
sub ecx, edx
movzx edx, word [esi - 0x5f8]
sub ecx, edx
movzx edx, word [esi + 2]
inc ecx
sar ecx, 2
add ecx, edx
cmp ecx, 0xffff
mov edx, dword [0x465c58]
jge 0x4144f9
xor edx, edx
test ecx, ecx
setl dl
dec edx
and ecx, edx
mov edx, dword [0x465c58]
jmp 0x4144fe
mov ecx, 0xffff
fld dword [0x451870]
mov word [esi + eax*2], cx
mov ax, word [edi + ebp*2]
fst dword [esp + 0x30]
mov word [esi + ebp*2], ax
fst dword [esp + 0x2c]
xor eax, eax
fstp dword [esp + 0x28]
cmp edx, 4
jl 0x41462e
lea edi, [edx - 3]
lea ecx, [esi + 4]
movzx ebp, word [ecx - 4]
mov dword [esp + 0x10], ebp
movzx ebp, word [ecx - 2]
fild dword [esp + 0x10]
fld dword [esp + eax*4 + 0xa0]
mov dword [esp + 0x10], ebp
movzx ebp, word [ecx]
fmul st(1)
add eax, 4
fadd dword [esp + 0x28]
add ecx, 8
cmp eax, edi
fstp dword [esp + 0x28]
fld dword [esp + eax*4 + 0xa0]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fmul dword [esp + eax*4 + 0xb0]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ebp
fld dword [esp + eax*4 + 0x94]
movzx ebp, word [ecx - 6]
fmul st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + eax*4 + 0xa4]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fmul dword [esp + eax*4 + 0xb4]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
mov dword [esp + 0x10], ebp
fld dword [esp + eax*4 + 0x98]
fmul st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + eax*4 + 0xa8]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fmul dword [esp + eax*4 + 0xb8]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
fild dword [esp + 0x10]
fld dword [esp + eax*4 + 0x9c]
fmul st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + eax*4 + 0xac]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fmul dword [esp + eax*4 + 0xbc]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
jl 0x41452d
cmp eax, edx
jge 0x414674
movzx ecx, word [esi + eax*2]
mov dword [esp + 0x10], ecx
inc eax
cmp eax, edx
fild dword [esp + 0x10]
fld dword [esp + eax*4 + 0x9c]
fmul st(1)
fadd dword [esp + 0x28]
fstp dword [esp + 0x28]
fld dword [esp + eax*4 + 0xac]
fmul st(1)
fadd dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fmul dword [esp + eax*4 + 0xbc]
fadd dword [esp + 0x30]
fstp dword [esp + 0x30]
jl 0x414632
fld dword [esp + 0x28]
call fcn.00436cf0
cmp eax, 0xffff
jge 0x414693
test eax, eax
jge 0x41468c
xor eax, eax
jmp 0x414698
cmp eax, 0xffff
jl 0x414698
mov eax, 0xffff
fld dword [esp + eax*4 + 0xd0]
fstp dword [esp + 0x28]
fld dword [esp + 0x2c]
call fcn.00436cf0
cmp eax, 0xffff
jge 0x4146c2
test eax, eax
jge 0x4146bb
xor eax, eax
jmp 0x4146c7
cmp eax, 0xffff
jl 0x4146c7
mov eax, 0xffff
fld dword [esp + eax*4 + 0xd0]
fstp dword [esp + 0x2c]
fld dword [esp + 0x30]
call fcn.00436cf0
cmp eax, 0xffff
jge 0x4146f1
test eax, eax
jge 0x4146ea
xor eax, eax
jmp 0x4146f6
cmp eax, 0xffff
jl 0x4146f6
mov eax, 0xffff
fld dword [esp + eax*4 + 0xd0]
fstp dword [esp + 0x30]
fld dword [esp + 0x2c]
fld st(0)
fmul st(6)
fsub st(5)
fmul st(4)
call fcn.00436cf0
fld dword [esp + 0x28]
mov esi, dword [esp + 0x34]
fsub st(1)
mov word [ebx + esi + 0xc0000], ax
fmul st(3)
call fcn.00436cf0
fsub dword [esp + 0x30]
mov word [ebx + esi + 0xc0002], ax
fmul st(1)
call fcn.00436cf0
mov ecx, dword [esp + 0x18]
mov word [ebx + esi + 0xc0004], ax
mov eax, dword [esp + 0x1c]
inc ecx
add eax, 0xff
cmp ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
mov edi, esi
jl 0x41436b
movzx ecx, word [0x466040]
mov edx, dword [esp + 0x38]
add dword [esp + 0x14], ecx
add dword [esp + 0x20], 4
mov ebx, dword [esp + 0x1c]
inc eax
add edx, 0xff
cmp eax, edx
mov dword [esp + 0x24], eax
jl 0x414343
add dword [esp + 0x3c], 0x100
sub dword [esp + 0x40], 1
jne 0x414301
fstp st(4)
push 0x20000
fstp st(2)
lea eax, [edi + 0x180000]
fstp st(0)
push 0
fstp st(0)
push eax
fstp st(0)
call fcn.00436440
mov ecx, dword [esp + 0x44]
lea eax, [ecx + 2]
mov edx, eax
lea eax, [ecx + 0xfe]
add esp, 0xc
cmp edx, eax
mov dword [esp + 0x24], edx
jge 0x414b16
movzx eax, word [0x4ac486]
add eax, 0xfffffffc
mov dword [esp + 0x50], eax
mov eax, edx
sub eax, ecx
shl eax, 8
mov dword [esp + 0x20], eax
jmp 0x414800
cmp edx, dword [esp + 0x50]
jge 0x414b16
mov ecx, dword [esp + 0x1c]
lea edx, [ecx + 2]
add ecx, 0xfe
cmp edx, ecx
mov dword [esp + 0x18], edx
jge 0x414aee
movzx ecx, word [0x466040]
add ecx, 0xfffffffc
mov dword [esp + 0x48], ecx
mov ecx, edx
sub ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], ecx
jmp 0x414840
cmp edx, dword [esp + 0x48]
jge 0x414aee
add eax, ecx
lea edx, [eax + eax*2 + 3]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
lea eax, [eax + edx*2 + 0xc0000]
xor edx, edx
movsx ecx, word [eax - 6]
movsx edi, word [eax - 0xc]
movsx ebp, word [eax - 0xa]
mov esi, ecx
sub esi, edi
mov edi, esi
sar edi, 0x1f
mov ebx, edi
xor ebx, esi
sub ebx, edi
movsx esi, word [eax - 2]
mov dword [esp + edx + 0x80], ebx
movsx ebx, word [eax - 8]
mov edi, esi
sub edi, ebx
movsx ebx, word [eax - 4]
mov dword [esp + 0x14], ebx
sub ebx, ebp
mov ebp, ebx
imul ebp, ebx
mov ebx, edi
imul ebx, edi
movsx edi, word [eax]
add ebp, ebx
mov dword [esp + edx + 0x60], ebp
mov ebx, ecx
sub ebx, edi
movsx edi, word [eax]
sar ebx, 0x1f
mov ebp, ecx
sub ebp, edi
movsx edi, word [eax]
xor ebx, ebp
mov ebp, ecx
sub ebp, edi
mov edi, dword [esp + 0x14]
sar ebp, 0x1f
sub ebx, ebp
mov dword [esp + edx + 0x84], ebx
movsx ebx, word [eax + 2]
mov ebp, edi
sub ebp, ebx
movsx ebx, word [eax + 2]
sub edi, ebx
imul ebp, edi
movsx edi, word [eax + 4]
mov ebx, esi
sub ebx, edi
movsx edi, word [eax + 4]
mov dword [esp + 0x40], esi
sub esi, edi
imul ebx, esi
movsx esi, word [eax - 0x606]
add ebp, ebx
mov edi, ecx
sub edi, esi
movsx esi, word [eax - 0x606]
sar edi, 0x1f
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax - 0x606]
xor edi, ebx
mov ebx, ecx
sub ebx, esi
mov esi, dword [esp + 0x14]
sar ebx, 0x1f
sub edi, ebx
mov dword [esp + edx + 0x88], edi
movsx edi, word [eax - 0x604]
mov ebx, esi
sub ebx, edi
movsx edi, word [eax - 0x604]
sub esi, edi
movsx edi, word [eax - 0x602]
imul ebx, esi
mov esi, dword [esp + 0x40]
mov dword [esp + edx + 0x64], ebp
mov ebp, esi
sub ebp, edi
movsx edi, word [eax - 0x602]
sub esi, edi
imul ebp, esi
movsx esi, word [eax + 0x5fa]
mov edi, ecx
sub edi, esi
movsx esi, word [eax + 0x5fa]
add ebx, ebp
mov dword [esp + edx + 0x68], ebx
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax + 0x5fa]
sub ecx, esi
movsx esi, word [eax + 0x5fc]
sar edi, 0x1f
xor edi, ebx
sar ecx, 0x1f
sub edi, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + edx + 0x8c], edi
mov edi, ecx
sub edi, esi
movsx esi, word [eax + 0x5fc]
sub ecx, esi
movsx esi, word [eax + 0x5fe]
imul edi, ecx
mov ecx, dword [esp + 0x40]
mov ebx, ecx
sub ebx, esi
movsx esi, word [eax + 0x5fe]
sub ecx, esi
imul ebx, ecx
add edi, ebx
mov dword [esp + edx + 0x6c], edi
add edx, 0x10
add eax, 0x60000
cmp edx, 0x20
jl 0x414861
mov edi, dword [esp + 0x80]
mov ebx, dword [esp + 0x84]
mov esi, edi
cmp edi, ebx
ja 0x414a00
mov esi, ebx
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
mov eax, ecx
cmp ecx, edx
ja 0x414a16
mov eax, edx
cmp esi, eax
jae 0x414a26
cmp edi, ebx
jbe 0x414a22
mov ebp, edi
jmp 0x414a2e
mov ebp, ebx
jmp 0x414a2e
mov ebp, ecx
cmp ecx, edx
ja 0x414a2e
mov ebp, edx
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x64]
mov esi, edi
cmp edi, ebx
ja 0x414a3e
mov esi, ebx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x7c]
mov eax, ecx
cmp ecx, edx
ja 0x414a4e
mov eax, edx
cmp esi, eax
jae 0x414a5e
cmp edi, ebx
jbe 0x414a5a
mov edx, edi
jmp 0x414a64
mov edx, ebx
jmp 0x414a64
cmp ecx, edx
jbe 0x414a64
mov edx, ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x3c]
add eax, 0x180000
add ecx, eax
xor eax, eax
cmp dword [esp + eax + 0x80], ebp
ja 0x414a86
cmp dword [esp + eax + 0x60], edx
ja 0x414a86
inc byte [ecx]
cmp dword [esp + eax + 0x84], ebp
ja 0x414a97
cmp dword [esp + eax + 0x64], edx
ja 0x414a97
inc byte [ecx]
cmp dword [esp + eax + 0x88], ebp
ja 0x414aa8
cmp dword [esp + eax + 0x68], edx
ja 0x414aa8
inc byte [ecx]
cmp dword [esp + eax + 0x8c], ebp
ja 0x414ab9
cmp dword [esp + eax + 0x6c], edx
ja 0x414ab9
inc byte [ecx]
add eax, 0x10
add ecx, 0x10000
cmp eax, 0x20
jl 0x414a75
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
inc edx
add eax, 0xfe
inc ecx
cmp edx, eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], ecx
jl 0x414840
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
inc edx
add eax, 0x100
add ecx, 0xfe
cmp edx, ecx
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], eax
jl 0x414800
mov edx, dword [esp + 0x38]
lea eax, [edx + 3]
lea ecx, [edx + 0xfd]
cmp eax, ecx
mov dword [esp + 0x24], eax
jge 0x414d24
movzx ecx, word [0x466040]
imul ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, eax
sub ecx, edx
mov edx, ecx
shl ecx, 8
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], ecx
mov edi, edi
cmp eax, dword [esp + 0x44]
jge 0x414d24
mov ebx, dword [esp + 0x1c]
lea ecx, [ebx + 3]
lea esi, [ebx + 0xfd]
cmp ecx, esi
mov dword [esp + 0x18], ecx
jge 0x414cf5
mov esi, ecx
sub esi, ebx
mov dword [esp + 0x3c], esi
jmp 0x414b84
mov ecx, dword [esp + 0x18]
cmp ecx, dword [esp + 0x4c]
jge 0x414cf5
xor ecx, ecx
lea ebp, [esp + 0x58]
lea eax, [edx + 1]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x40], ebp
lea ebx, [edx - 1]
cmp ebx, eax
mov dword [ebp], 0
jg 0x414bf2
mov esi, dword [esp + 0x3c]
inc esi
mov eax, dword [esp + 0x3c]
dec eax
cmp eax, esi
jg 0x414bea
add ecx, ebx
shl ecx, 8
lea edx, [ecx + edi + 0x180000]
mov ecx, dword [ebp]
lea ebx, [ebx]
movsx ebp, byte [edx + eax]
inc eax
add ecx, ebp
cmp eax, esi
jle 0x414bd0
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x20]
mov dword [ebp], ecx
mov ecx, dword [esp + 0x48]
inc ebx
lea eax, [edx + 1]
cmp ebx, eax
jle 0x414bb2
add ecx, 0x100
add ebp, 4
cmp ecx, 0x200
mov dword [esp + 0x40], ebp
mov dword [esp + 0x48], ecx
jl 0x414b9f
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x5c]
cmp eax, esi
je 0x414c5f
xor ecx, ecx
cmp esi, eax
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
setg cl
add eax, esi
mov esi, dword [0x4ac418]
add eax, eax
shl ecx, 8
add ecx, edx
shl ecx, 8
add ecx, dword [esp + 0x3c]
add eax, eax
lea ecx, [ecx + ecx*2]
movzx ebx, word [edi + ecx*2]
mov word [esi + eax*2], bx
movzx ebx, word [edi + ecx*2 + 2]
mov word [esi + eax*2 + 2], bx
mov cx, word [edi + ecx*2 + 4]
mov word [esi + eax*2 + 4], cx
jmp 0x414cd3
mov esi, dword [esp + 0x3c]
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
lea eax, [edx + esi]
mov edx, dword [esp + 0x18]
add ecx, edx
mov edx, dword [esp + 0x20]
add edx, 0x100
shl edx, 8
add edx, esi
lea eax, [eax + eax*2]
lea edx, [edx + edx*2]
movzx esi, word [edi + edx*2]
movzx edx, word [edi + eax*2]
add esi, edx
mov edx, dword [0x4ac418]
sar esi, 1
add ecx, ecx
add ecx, ecx
mov word [edx + ecx*2], si
movzx esi, word [edi + eax*2 + 0x60002]
movzx ebx, word [edi + eax*2 + 2]
add esi, ebx
sar esi, 1
mov word [edx + ecx*2 + 2], si
movzx esi, word [edi + eax*2 + 4]
movzx eax, word [edi + eax*2 + 0x60004]
add esi, eax
sar esi, 1
mov word [edx + ecx*2 + 4], si
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
inc dword [esp + 0x3c]
inc ecx
add eax, 0xfd
cmp ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
jl 0x414b80
movzx ecx, word [0x466040]
add dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x38]
add dword [esp + 0x10], 0x100
inc eax
inc edx
add ecx, 0xfd
cmp eax, ecx
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
jl 0x414b50
fld qword [0x451878]
mov eax, dword [esp + 0x1c]
fld qword [0x451820]
add eax, 0xfa
cmp eax, dword [esp + 0x4c]
fld qword [0x451880]
fld qword [0x451888]
mov dword [esp + 0x1c], eax
fld qword [0x451890]
fxch st(4)
fxch st(1)
fxch st(3)
fxch st(1)
jl 0x4140e0
mov eax, dword [esp + 0x38]
add eax, 0xfa
cmp eax, dword [esp + 0x44]
mov dword [esp + 0x38], eax
jl 0x4140b2
fstp st(4)
fstp st(2)
fstp st(0)
fstp st(0)
fstp st(0)
mov ecx, dword [esp + 0x34]
push ecx
call fcn.0043481f
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x4ac404]
push str.ahd_interpolate__
push edx
push str._s:_Out_of_memory_in__s_n
call fcn.00434a96
add eax, 0x40
push eax
call fcn.00435780
add esp, 0x10
push 1
push 0x4660c0
call fcn.00435cb8
int3