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

Disassembly:
sub esp, 0xaa0
push ebx
push ebp
push esi
mov esi, dword [esp + 0xab0]
push edi
mov edi, dword [esp + 0xab8]
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 4]
xor ebp, ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x74], ebp
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x94], ebp
cmp eax, 1
jbe 0x4165c0
cmp dword [0x5d5f9c], ebp
jle 0x4165a2
push eax
push 0x5ae0fc
call fcn.004b7f6d
add esp, 8
mov eax, dword [esi + 0x424]
cmp eax, ebp
je 0x4165ed
mov ecx, dword [edi + 0xc]
push ecx
push 0x5ae0fc
push eax
call fcn.00443960
add esp, 0xc
jmp 0x4165ed
cmp dword [0x5d5f9c], ebp
jle 0x4165d5
push 0x5ae128
call fcn.004b7f6d
add esp, 4
mov eax, dword [esi + 0x424]
cmp eax, ebp
je 0x4165ed
push 0x5ae128
push eax
call fcn.00443960
add esp, 8
push 0x200
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x416617
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x5c], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x416640
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x60], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x416669
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x64], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x416692
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x3c], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x4166bb
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x40], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x4166e4
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x2c], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x41670d
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x30], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x416736
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x68], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x41675f
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x6c], eax
call fcn.004b7263
add esp, 4
push 0x200
cmp eax, ebp
jne 0x416788
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x70], eax
call fcn.004b7263
add esp, 4
cmp eax, ebp
jne 0x4167b1
push 0x200
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
lea esi, [ebx*8]
push esi
mov dword [esp + 0x84], eax
call fcn.004b7263
add esp, 4
push esi
cmp eax, ebp
jne 0x4167e1
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x1c], eax
call fcn.004b7263
add esp, 4
push esi
cmp eax, ebp
jne 0x416806
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x20], eax
call fcn.004b7263
add esp, 4
push esi
cmp eax, ebp
jne 0x41682b
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x24], eax
call fcn.004b7263
add esp, 4
push esi
cmp eax, ebp
jne 0x416850
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x4c], eax
call fcn.004b7263
mov ebx, eax
add esp, 4
mov dword [esp + 0x24], ebx
push esi
cmp ebx, ebp
jne 0x41687b
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
call fcn.004b7263
add esp, 4
mov dword [esp + 0x90], eax
cmp eax, ebp
jne 0x4168a3
push esi
push 0x5adcd0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
mov dword [esp + 0x70], ebp
cmp dword [0x5d5f9c], ebp
jle 0x4168ed
mov ecx, edi
call fcn.00418940
mov edx, eax
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 4
add edx, eax
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
jns 0x4168d4
fadd qword [0x5b4428]
fmul qword [0x5b4730]
sub esp, 8
fstp qword [esp]
push 0x5ae148
call fcn.004b7f6d
add esp, 0xc
mov ecx, dword [esp + 0xab4]
mov edi, dword [ecx + 0x424]
cmp edi, ebp
je 0x416942
mov ecx, dword [esp + 0xab8]
call fcn.00418940
mov edx, eax
mov eax, dword [esp + 0x10]
lea eax, [eax + eax*2]
shl eax, 4
add edx, eax
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
jns 0x416928
fadd qword [0x5b4428]
fmul qword [0x5b4730]
sub esp, 8
fstp qword [esp]
push 0x5ae148
push edi
call fcn.00443960
add esp, 0x10
mov edx, dword [esp + 0xab4]
test dword [edx + 0x478], 0x2000
mov ecx, dword [esp + 0xac4]
mov dword [esp + 0x30], ebp
mov dword [esp + 0x84], ebp
mov dword [esp + 0x7c], ecx
je 0x4169fc
mov esi, dword [esp + 0xab4]
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x6b4]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x20]
push eax
push ecx
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x88]
push eax
push ebx
mov eax, esi
call fcn.00415f50
add esp, 0x2c
cmp dword [0x5d5f9c], ebp
jle 0x4169d8
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
push ecx
push edx
push 0x5ae160
call fcn.004b7f6d
add esp, 0xc
mov eax, dword [esi + 0x424]
cmp eax, ebp
je 0x416a5c
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
push ecx
push edx
push 0x5ae160
push eax
call fcn.00443960
add esp, 0x10
jmp 0x416a5c
push esi
call fcn.004b7263
add esp, 4
cmp eax, ebp
je 0x41688e
lea ecx, [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x6b4]
push edx
push ecx
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x4c]
push edx
lea ecx, [esp + 0x30]
push ecx
mov ecx, dword [esp + 0xad0]
lea edx, [esp + 0x80]
push edx
push eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xadc]
push eax
mov eax, ebx
call fcn.004161b0
add esp, 0x28
mov edi, dword [esp + 0x78]
xor edx, edx
xor esi, esi
xor eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], esi
cmp edi, ebp
jbe 0x416a96
mov ecx, dword [esp + eax*4 + 0x7b0]
or edx, dword [ecx*8 + 0x5aad10]
mov ecx, dword [ecx*8 + 0x5aad14]
inc eax
or esi, ecx
cmp eax, edi
jb 0x416a72
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edx
push ebp
call fcn.004b9392
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0xa4], edx
cmp eax, 0xea60
jbe 0x416b0c
mov edx, dword [esp + 0xab4]
test byte [edx + 0x478], 3
je 0x416b0c
cmp eax, 0xf4240
jbe 0x416ad6
mov eax, 0xc8
jmp 0x416af7
cmp eax, 0x7a120
jbe 0x416ae4
mov eax, 0x1f4
jmp 0x416af7
mov ecx, 0x186a0
cmp ecx, eax
sbb eax, eax
and eax, 0xffffe890
add eax, 0x1f40
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x4c], eax
add eax, ecx
mov dword [esp + 0x74], ecx
mov dword [esp + 0x94], eax
mov edi, dword [esp + 0xab8]
inc dword [esp + 0x30]
cmp dword [edi + 0x10], 0
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x90]
je 0x416b37
push ebp
mov esi, ebx
mov eax, edi
call fcn.00417a80
add esp, 4
jmp 0x416b42
push ebx
push ebp
push edi
call fcn.00417ca0
add esp, 0xc
cmp dword [edi + 0x10], 0
mov esi, dword [esp + 0x48]
push esi
push ebx
je 0x416b5a
mov eax, edi
call fcn.00417b80
add esp, 8
jmp 0x416b63
push edi
call fcn.00417e40
add esp, 0xc
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x38]
push ebx
push edi
push esi
push ebp
call fcn.004150c0
mov edx, dword [esp + 0x38]
push ebx
push edx
push esi
push esi
call fcn.004150c0
add esp, 0x20
xor ecx, ecx
lea eax, [edi + 0x10]
lea esp, [esp]
mov edx, dword [eax - 0x10]
or edx, dword [eax - 0xc]
jne 0x416bc7
mov edx, dword [eax - 8]
or edx, dword [eax - 4]
jne 0x416bbc
mov edx, dword [eax]
or edx, dword [eax + 4]
jne 0x416bbf
mov edx, dword [eax + 8]
or edx, dword [eax + 0xc]
jne 0x416bc4
add ecx, 4
add eax, 0x20
cmp ecx, 0x40
jb 0x416b90
jmp 0x416bc7
inc ecx
jmp 0x416bc7
add ecx, 2
jmp 0x416bc7
add ecx, 3
cmp ecx, 0x40
je 0x4174b7
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x78]
push eax
push ecx
mov ecx, dword [esp + 0xabc]
lea edx, [esp + 0x7b8]
push edx
lea eax, [esp + 0x6bc]
push eax
push ecx
mov edx, edi
call fcn.00415530
add esp, 0x14
mov dword [esp + 0x84], eax
test eax, eax
je 0x4174b7
xor ebp, ebp
xor ebx, ebx
xor ecx, ecx
test eax, eax
je 0x416c40
jmp 0x416c20
mov edx, dword [esp + ecx*4 + 0x6b0]
or ebp, dword [edx*8 + 0x5aad10]
mov edx, dword [edx*8 + 0x5aad14]
inc ecx
or ebx, edx
cmp ecx, eax
jb 0x416c20
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0xab8]
mov ecx, dword [eax]
mov edx, dword [esp + 0x10]
sub ecx, 0x40
cmp dword [esp + 0x14], ecx
jae 0x416c6d
mov eax, ebp
or eax, dword [esp + 0x40]
mov ecx, ebx
or ecx, dword [esp + 0x44]
and eax, ecx
cmp eax, 0xffffffff
jne 0x417476
mov eax, ebp
and eax, ebx
cmp eax, 0xffffffff
je 0x416c8c
xor eax, eax
test edx, edx
je 0x416c8c
lea esp, [esp]
and dword [esi + eax*8], ebp
and dword [esi + eax*8 + 4], ebx
inc eax
cmp eax, edx
jb 0x416c80
mov eax, dword [esp + 0x30]
cmp eax, 4
jae 0x416cb3
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push eax
push ecx
call fcn.004150c0
add esp, 0x10
jmp 0x416cca
jne 0x416cca
mov edx, dword [esp + 0x70]
push edx
call fcn.004b7229
add esp, 4
mov dword [esp + 0x70], 0
mov esi, dword [esp + 0x28]
lea ecx, [esi + 0x18]
sub esi, edi
mov dword [esp + 0x9c], esi
mov esi, edi
xor edx, edx
neg esi
lea eax, [edi + 8]
lea edi, [esp + esi + 0x2b0]
mov dword [esp + 0x88], edi
lea edi, [esp + esi + 0x2b8]
lea esi, [esp + esi + 0x2c0]
mov dword [esp + 0x34], edx
mov dword [esp + 0xac], edi
mov dword [esp + 0x98], esi
mov esi, dword [ecx - 0x18]
mov edi, dword [ecx - 0x14]
and esi, ebp
xor esi, dword [eax - 8]
and edi, ebx
xor edi, dword [eax - 4]
mov dword [esp + edx*8 + 0x2b0], esi
mov dword [esp + edx*8 + 0x2b4], edi
mov edx, dword [esp + 0x9c]
mov esi, dword [edx + eax]
mov edi, dword [edx + eax + 4]
mov edx, dword [esp + 0x88]
and esi, ebp
xor esi, dword [eax]
and edi, ebx
xor edi, dword [eax + 4]
mov dword [eax + edx], esi
mov esi, dword [ecx - 8]
mov dword [eax + edx + 4], edi
mov edi, dword [ecx - 4]
mov edx, dword [esp + 0xac]
and esi, ebp
xor esi, dword [eax + 8]
and edi, ebx
xor edi, dword [eax + 0xc]
mov dword [eax + edx], esi
mov dword [eax + edx + 4], edi
mov edx, dword [esp + 0x98]
mov esi, ebp
and esi, dword [ecx]
mov edi, ebx
and edi, dword [ecx + 4]
xor esi, dword [eax + 0x10]
xor edi, dword [eax + 0x14]
mov dword [eax + edx], esi
mov dword [eax + edx + 4], edi
mov edx, dword [esp + 0x34]
add edx, 4
add eax, 0x20
add ecx, 0x20
mov dword [esp + 0x34], edx
cmp edx, 0x40
jb 0x416d11
lea eax, [esp + 0x2b0]
push eax
mov ecx, eax
mov eax, dword [esp + 0x5c]
push ecx
call fcn.00414dd0
add esp, 8
xor eax, eax
mov edx, dword [eax + 0x5aad10]
xor dword [esp + eax + 0x2b0], edx
mov ecx, dword [eax + 0x5aad14]
xor dword [esp + eax + 0x2b4], ecx
mov edx, dword [eax + 0x5aad18]
mov ecx, dword [eax + 0x5aad1c]
xor dword [esp + eax + 0x2b8], edx
xor dword [esp + eax + 0x2bc], ecx
mov edx, dword [eax + 0x5aad20]
mov ecx, dword [eax + 0x5aad24]
xor dword [esp + eax + 0x2c0], edx
xor dword [esp + eax + 0x2c4], ecx
mov edx, dword [eax + 0x5aad28]
mov ecx, dword [eax + 0x5aad2c]
xor dword [esp + eax + 0x2c8], edx
xor dword [esp + eax + 0x2cc], ecx
add eax, 0x20
cmp eax, 0x200
jb 0x416dc2
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
push edx
push edi
lea eax, [esp + 0x2b8]
push eax
push ecx
call fcn.00414f80
lea edx, [esp + 0x2c0]
push edx
mov eax, edx
push eax
call fcn.00414e60
mov esi, dword [esp + 0x98]
mov ecx, dword [esp + 0x7c]
push esi
push ecx
lea eax, [esp + 0x2d0]
call fcn.00414dd0
mov eax, dword [esp + 0x58]
lea edx, [esp + 0x4d0]
push edx
push eax
mov eax, dword [esp + 0x84]
call fcn.00414dd0
add esp, 0x28
xor eax, eax
jmp 0x416ea0
and dword [esp + eax*8 + 0x4b0], ebp
and dword [esp + eax*8 + 0x4b4], ebx
inc eax
cmp eax, 0x40
jb 0x416ea0
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x1c]
push ecx
push edi
lea edx, [esp + 0x4b8]
push edx
push eax
call fcn.00414f80
lea ecx, [esp + 0x4c0]
push ecx
mov edx, ecx
push edx
call fcn.00414e60
mov ecx, dword [esp + 0x80]
lea eax, [esp + 0x4c8]
push eax
push ecx
call fcn.00414dd0
mov edx, esi
add esp, 0x20
xor ecx, ecx
neg edx
lea eax, [esi + 0x10]
mov dword [esp + 0x50], edx
lea esi, [esp + edx + 0x4b0]
mov dword [esp + 0x8c], eax
lea edx, [esp + edx + 0x4b8]
mov edi, dword [esp + ecx*8 + 0x4b0]
xor dword [eax - 0x10], edi
mov edi, dword [esp + ecx*8 + 0x4b4]
xor dword [eax - 0xc], edi
mov edi, dword [esp + ecx*8 + 0x4b8]
xor dword [eax - 8], edi
mov edi, dword [esp + ecx*8 + 0x4bc]
xor dword [eax - 4], edi
mov edi, dword [eax + esi]
xor dword [eax], edi
mov edi, dword [eax + esi + 4]
xor dword [eax + 4], edi
mov edi, dword [eax + edx]
xor dword [eax + 8], edi
mov edi, dword [eax + edx + 4]
xor dword [eax + 0xc], edi
add ecx, 4
add eax, 0x20
cmp ecx, 0x40
jb 0x416f16
mov edx, dword [esp + 0x40]
and edx, dword [esp + 0x44]
cmp edx, 0xffffffff
je 0x4171e0
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0xb0]
push eax
push ecx
mov eax, esi
call fcn.00414dd0
add esp, 8
xor eax, eax
mov edx, dword [eax + 0x5aad10]
xor dword [esp + eax + 0xb0], edx
mov ecx, dword [eax + 0x5aad14]
xor dword [esp + eax + 0xb4], ecx
mov edx, dword [eax + 0x5aad18]
mov ecx, dword [eax + 0x5aad1c]
xor dword [esp + eax + 0xb8], edx
xor dword [esp + eax + 0xbc], ecx
mov edx, dword [eax + 0x5aad20]
mov ecx, dword [eax + 0x5aad24]
xor dword [esp + eax + 0xc0], edx
xor dword [esp + eax + 0xc4], ecx
mov edx, dword [eax + 0x5aad28]
mov ecx, dword [eax + 0x5aad2c]
xor dword [esp + eax + 0xc8], edx
xor dword [esp + eax + 0xcc], ecx
add eax, 0x20
cmp eax, 0x200
jb 0x416f90
lea edx, [esp + 0xb0]
mov eax, edx
push edx
push eax
mov eax, dword [esp + 0x68]
call fcn.00414dd0
mov edx, dword [esp + 0x34]
lea ecx, [edx + 0x18]
sub edx, esi
mov dword [esp + 0xa0], edx
mov edx, esi
add esp, 8
neg edx
lea eax, [esi + 8]
lea esi, [esp + edx + 0x8b0]
mov dword [esp + 0xac], esi
lea esi, [esp + edx + 0x8b8]
lea edx, [esp + edx + 0x8c0]
mov dword [esp + 0x34], 0
mov dword [esp + 0x88], esi
mov dword [esp + 0x9c], edx
mov esi, dword [ecx - 0x18]
and esi, dword [esp + 0x40]
mov edi, dword [ecx - 0x14]
and edi, dword [esp + 0x44]
xor esi, dword [eax - 8]
xor edi, dword [eax - 4]
mov edx, dword [esp + 0x34]
and esi, ebp
mov dword [esp + edx*8 + 0x8b0], esi
and edi, ebx
mov dword [esp + edx*8 + 0x8b4], edi
mov edx, dword [esp + 0x98]
mov esi, dword [edx + eax]
and esi, dword [esp + 0x40]
mov edi, dword [edx + eax + 4]
and edi, dword [esp + 0x44]
xor esi, dword [eax]
xor edi, dword [eax + 4]
mov edx, dword [esp + 0xac]
and esi, ebp
mov dword [eax + edx], esi
mov esi, dword [ecx - 8]
and esi, dword [esp + 0x40]
and edi, ebx
xor esi, dword [eax + 8]
mov dword [eax + edx + 4], edi
mov edi, dword [ecx - 4]
and edi, dword [esp + 0x44]
mov edx, dword [esp + 0x88]
xor edi, dword [eax + 0xc]
and esi, ebp
and edi, ebx
mov dword [eax + edx], esi
mov esi, dword [ecx]
and esi, dword [esp + 0x40]
mov dword [eax + edx + 4], edi
mov edi, dword [ecx + 4]
and edi, dword [esp + 0x44]
xor esi, dword [eax + 0x10]
xor edi, dword [eax + 0x14]
mov edx, dword [esp + 0x9c]
and esi, ebp
and edi, ebx
mov dword [eax + edx], esi
mov dword [eax + edx + 4], edi
mov edx, dword [esp + 0x34]
add edx, 4
add eax, 0x20
add ecx, 0x20
mov dword [esp + 0x34], edx
cmp edx, 0x40
jb 0x417062
lea eax, [esp + 0xb0]
push eax
lea ecx, [esp + 0x8b4]
push ecx
call fcn.00414dd0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
push edx
mov edx, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0xc0]
push ecx
push edx
call fcn.00414f80
lea eax, [esp + 0xc8]
push eax
mov ecx, eax
push ecx
call fcn.00414e60
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0xd0]
push edx
push eax
mov eax, edx
call fcn.00414dd0
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0xb4]
add esp, 0x28
lea edx, [esp + esi + 0xb0]
xor ecx, ecx
lea esi, [esp + esi + 0xb8]
mov edi, dword [esp + ecx*8 + 0xb0]
xor dword [eax - 0x10], edi
mov edi, dword [esp + ecx*8 + 0xb4]
xor dword [eax - 0xc], edi
mov edi, dword [esp + ecx*8 + 0xb8]
xor dword [eax - 8], edi
mov edi, dword [esp + ecx*8 + 0xbc]
xor dword [eax - 4], edi
mov edi, dword [edx + eax]
xor dword [eax], edi
mov edi, dword [edx + eax + 4]
xor dword [eax + 4], edi
mov edi, dword [esi + eax]
xor dword [eax + 8], edi
mov edi, dword [esi + eax + 4]
xor dword [eax + 0xc], edi
add ecx, 4
add eax, 0x20
cmp ecx, 0x40
jb 0x417194
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
lea ecx, [esp + 0x2b0]
push ecx
push edi
mov eax, esi
call fcn.00414dd0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x24]
push eax
lea ecx, [esp + 0x2c0]
push ecx
push edx
call fcn.00414f80
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x78], edx
mov edx, dword [esp + 0x98]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x2c], eax
mov dword [esp + 0x74], esi
mov dword [esp + 0x80], edi
mov dword [esp + 0x54], ecx
add esp, 0x18
cmp dword [esp + 0x4c], 0
mov ecx, 0x40
lea esi, [esp + 0x6b0]
lea edi, [esp + 0x7b0]
mov dword [esp + 0x2c], edx
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x78], eax
je 0x4173e3
mov eax, dword [esp + 0x14]
cmp eax, dword [esp + 0x94]
jb 0x4173e3
push 0
call fcn.004b9392
mov ecx, dword [esp + 0xa8]
add esp, 4
push ecx
mov ecx, dword [esp + 0xa4]
push ecx
push edx
push eax
call fcn.004b9acb
mov ebx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
mov edx, ebx
add esp, 0x10
sub edx, edi
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
jns 0x417321
fadd qword [0x5b4428]
mov eax, edi
fmulp st(1)
sub eax, dword [esp + 0x74]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
jns 0x417339
fadd qword [0x5b4428]
fdivp st(1)
fnstcw word [esp + 0x34]
movzx eax, word [esp + 0x34]
or eax, 0xc00
mov dword [esp + 0x50], eax
mov eax, 0x91a2b3c5
fldcw word [esp + 0x50]
fistp qword [esp + 0x50]
mov ecx, dword [esp + 0x50]
mul ecx
fldcw word [esp + 0x34]
mov esi, edx
shr esi, 0xb
mov edx, esi
imul edx, edx, 0xe10
sub ecx, edx
mov eax, 0x88888889
mul ecx
shr edx, 5
mov eax, edi
push edx
mov dword [esp + 0x54], eax
push esi
fild dword [esp + 0x58]
test eax, eax
jns 0x417393
fadd qword [0x5b4428]
fmul qword [0x5b45c8]
mov ecx, ebx
mov dword [esp + 0x58], ecx
fild dword [esp + 0x58]
test ecx, ecx
jns 0x4173ad
fadd qword [0x5b4428]
fdivp st(1)
sub esp, 8
fstp qword [esp]
push ebx
push edi
push 0x5ae1b8
push 0
call fcn.004b80fd
mov eax, dword [esp + 0x6c]
add eax, dword [esp + 0x34]
mov dword [esp + 0xb4], eax
call fcn.004b7416
add eax, 0x40
push eax
call fcn.004b7c36
add esp, 0x24
cmp dword [esp + 0xac4], 0
je 0x416b0c
mov ecx, dword [esp + 0x30]
cmp ecx, 4
jb 0x416b0c
mov eax, dword [esp + 0x14]
mov esi, dword [esp + 0xab4]
cmp eax, dword [esp + 0x7c]
jae 0x41741c
test byte [esi + 0x478], 4
je 0x416b0c
mov edx, dword [esp + 0xac4]
add edx, eax
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x78]
push edx
lea edx, [esp + 0x6b4]
push edx
push ecx
push eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x6c]
push ecx
lea edx, [esp + 0x40]
push edx
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x84]
push ecx
push edx
lea edi, [esp + 0x40]
mov eax, esi
call fcn.00415db0
add esp, 0x28
test byte [esi + 0x478], 4
je 0x416b0c
jmp 0x4174b7
mov eax, dword [esp + 0x14]
push eax
push 0x5ae188
call fcn.004b7f6d
mov ecx, dword [esp + 0xabc]
mov eax, dword [ecx + 0x424]
add esp, 8
test eax, eax
je 0x4174ac
mov edx, dword [esp + 0x14]
push edx
push 0x5ae188
push eax
call fcn.00443960
add esp, 0xc
mov dword [esp + 0x84], 0
cmp dword [esp + 0x4c], 0
je 0x4174d4
push 0x51a9dc
call fcn.004b7416
add eax, 0x40
push eax
call fcn.004b80fd
add esp, 8
cmp dword [0x5d5f9c], 0
jle 0x4174f4
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
push eax
push ecx
push 0x5ae204
call fcn.004b7f6d
add esp, 0xc
mov esi, dword [esp + 0xab4]
mov eax, dword [esi + 0x424]
test eax, eax
je 0x41751d
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
push edx
push ecx
push 0x5ae204
push eax
call fcn.00443960
add esp, 0x10
mov edx, dword [esp + 0x48]
push edx
call fcn.004b7229
mov eax, dword [esp + 0x94]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esp + 0x74]
add esp, 4
push ecx
call fcn.004b7229
mov edx, dword [esp + 0x3c]
add esp, 4
push edx
call fcn.004b7229
mov eax, dword [esp + 0x40]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esp + 0x2c]
add esp, 4
push ecx
call fcn.004b7229
mov edx, dword [esp + 0x30]
add esp, 4
push edx
call fcn.004b7229
mov eax, dword [esp + 0x5c]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esp + 0x60]
add esp, 4
push ecx
call fcn.004b7229
mov edx, dword [esp + 0x64]
add esp, 4
push edx
call fcn.004b7229
mov eax, dword [esp + 0x84]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esp + 0x68]
add esp, 4
push ecx
call fcn.004b7229
mov edx, dword [esp + 0x6c]
add esp, 4
push edx
call fcn.004b7229
mov eax, dword [esp + 0x70]
add esp, 4
push eax
call fcn.004b7229
mov edi, dword [esp + 0x88]
add esp, 4
test edi, edi
je 0x4178a0
test byte [esi + 0x478], 4
jne 0x4178a0
mov edi, dword [esp + 0xab8]
cmp dword [edi + 0x10], 0
mov ebx, dword [esp + 0x1c]
je 0x417619
mov ecx, dword [esp + 0x24]
push ecx
mov esi, ebx
mov eax, edi
call fcn.00417a80
add esp, 4
jmp 0x417628
mov edx, dword [esp + 0x24]
push ebx
push edx
push edi
call fcn.00417ca0
add esp, 0xc
cmp dword [edi + 0x10], 0
mov ebp, dword [esp + 0x18]
je 0x417643
mov esi, dword [esp + 0x20]
push ebp
mov eax, edi
call fcn.00417a80
add esp, 4
jmp 0x417652
mov eax, dword [esp + 0x20]
push eax
push ebp
push edi
call fcn.00417ca0
add esp, 0xc
xor edx, edx
cmp dword [esp + 0xac0], edx
je 0x417747
mov eax, 0x5aad10
sub eax, ebx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
sub eax, ebx
mov ecx, ebx
mov dword [esp + 0x8c], eax
mov dword [esp + 0x74], 0x30
mov eax, dword [esp + 0x50]
mov esi, dword [eax + ecx]
mov eax, dword [eax + ecx + 4]
xor ebp, ebp
mov dword [esp + 0x3c], edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], eax
cmp dword [esp + 0x10], edx
jbe 0x41770c
mov eax, dword [esp + 0x24]
mov edi, dword [esp + 0xac0]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
sub edi, eax
sub ebx, eax
mov dword [esp + 0x7c], edx
jmp 0x4176d0
mov edx, dword [edi + eax]
mov esi, dword [edi + eax + 4]
and edx, dword [esp + 0xa0]
and esi, dword [esp + 0xa4]
or edx, esi
je 0x417701
mov edx, dword [eax + 4]
xor dword [esp + 0x3c], edx
mov edx, dword [ebx + eax]
xor dword [esp + 0x28], edx
mov edx, dword [ebx + eax + 4]
xor ebp, dword [eax]
xor dword [esp + 0x2c], edx
add eax, 8
dec dword [esp + 0x7c]
jne 0x4176d0
xor edx, edx
mov eax, dword [esp + 0x3c]
xor dword [ecx + 4], eax
xor dword [ecx], ebp
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x8c]
xor dword [eax + ecx], esi
mov esi, dword [esp + 0x2c]
xor dword [eax + ecx + 4], esi
add ecx, 8
dec dword [esp + 0x74]
jne 0x417683
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0xab8]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x10]
push ecx
push ebx
push ebp
push edx
push esi
call fcn.00415a70
mov ecx, dword [esp + 0xad0]
add esp, 0x14
cmp dword [edi + 0x10], 0
mov dword [ecx], eax
je 0x417786
mov edx, dword [esp + 0x24]
push edx
mov esi, ebp
mov eax, edi
call fcn.00417a80
mov esi, dword [esp + 0x14]
add esp, 4
jmp 0x417795
mov eax, dword [esp + 0x24]
push ebp
push eax
push edi
call fcn.00417ca0
add esp, 0xc
xor eax, eax
test esi, esi
je 0x4177b3
jmp 0x4177a0
mov ecx, dword [ebp + eax*8]
or ecx, dword [ebp + eax*8 + 4]
jne 0x417822
inc eax
cmp eax, esi
jb 0x4177a0
push ebp
call fcn.004b7229
add esp, 4
push ebx
call fcn.004b7229
mov eax, dword [esp + 0x24]
add esp, 4
push eax
call fcn.004b7229
mov esi, dword [esp + 0xac0]
mov eax, dword [esi]
add esp, 4
test eax, eax
jne 0x417858
push 0x5ae280
call fcn.004b7f6d
mov ecx, dword [esp + 0xab8]
mov eax, dword [ecx + 0x424]
add esp, 4
test eax, eax
je 0x417891
push 0x5ae280
push eax
call fcn.00443960
mov eax, dword [esp + 0x2c]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xaa0
ret
cmp eax, esi
jae 0x4177b3
push str.lanczos_error:_dependencies_dont_work_n
call fcn.004b7f6d
mov edx, dword [esp + 0xab8]
mov eax, dword [edx + 0x424]
add esp, 4
test eax, eax
je 0x41689c
push str.lanczos_error:_dependencies_dont_work_n
push eax
call fcn.00443960
jmp 0x416899
cmp dword [0x5d5f9c], 0
jle 0x41786f
push eax
push 0x5ae2b0
call fcn.004b7f6d
add esp, 8
mov edx, dword [esp + 0xab4]
mov eax, dword [edx + 0x424]
test eax, eax
je 0x417891
mov ecx, dword [esi]
push ecx
push 0x5ae2b0
push eax
call fcn.00443960
add esp, 0xc
mov eax, dword [esp + 0x24]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xaa0
ret
mov edx, dword [esp + 0x24]
push edx
call fcn.004b7229
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call fcn.004b7229
mov ecx, dword [esp + 0x20]
add esp, 4
push ecx
call fcn.004b7229
mov edx, dword [esp + 0x24]
add esp, 4
push edx
call fcn.004b7229
add esp, 4
test edi, edi
jne 0x417904
push 0x5ae234
call fcn.004b7f6d
mov eax, dword [esi + 0x424]
add esp, 4
test eax, eax
je 0x4178fd
push 0x5ae234
push eax
call fcn.00443960
add esp, 8
push 1
jmp 0x41689e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xaa0
ret