Function at 0x4224e0
Capabilities:
64-bit execution via heavens gate

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x437f21
mov eax, dword fs:[0]
push eax
sub esp, 0x1a4
mov eax, dword [0x448458]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [0x46f278]
mov edx, dword [0x46f27c]
test eax, eax
jne 0x422531
test edx, edx
jne 0x422531
call fcn.00422170
mov dword [0x46f278], eax
mov dword [0x46f27c], edx
lea ecx, [ebp - 0x1a8]
mov dword [ebp - 0x138], edx
mov dword [ebp - 0x11c], ecx
mov ebx, eax
test ecx, ecx
je 0x4225ac
test eax, eax
jne 0x422551
test edx, edx
je 0x4225ac
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
push 0x33
call fcn.00422564
mov eax, dword [ebp - 0x16c]
lea ecx, [ebp - 0x118]
mov esi, dword [ebp - 0x138]
cdq
add eax, ebx
mov dword [ebp - 0x11c], ecx
adc edx, esi
test ecx, ecx
je 0x422636
test eax, eax
jne 0x4225d5
test edx, edx
je 0x422636
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], edx
push 0x33
call fcn.004225e8
mov eax, dword [ebp - 0x90]
test eax, eax
jne 0x422649
xor eax, eax
xor edx, edx
jmp 0x42288d
xor ecx, ecx
lea edx, [ebp - 0x164]
add eax, ebx
mov dword [ebp - 0x11c], edx
adc ecx, esi
test edx, edx
je 0x4226c8
test eax, eax
jne 0x422667
test ecx, ecx
je 0x4226c8
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x124], ecx
push 0x33
call fcn.0042267a
mov eax, dword [ebp - 0x150]
shl eax, 2
push eax
mov dword [ebp - 0x11c], eax
call fcn.004246c2
mov edi, eax
add esp, 4
mov dword [ebp - 0x134], edi
test edi, edi
je 0x422640
lea eax, [ebp - 0x134]
mov byte [ebp - 0x124], 1
mov dword [ebp - 0x128], eax
mov dword [ebp - 4], 0
xor eax, eax
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x11c]
add ecx, ebx
adc eax, esi
push eax
push ecx
mov ecx, edi
call fcn.00422050
mov eax, dword [ebp - 0x150]
add eax, eax
push eax
mov dword [ebp - 0x11c], eax
call fcn.004246c2
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x12c], edi
test edi, edi
jne 0x422758
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
jmp 0x422867
lea eax, [ebp - 0x12c]
mov byte [ebp - 0x138], 1
mov dword [ebp - 0x13c], eax
mov byte [ebp - 4], 1
xor eax, eax
mov ecx, dword [ebp - 0x140]
mov edx, dword [ebp - 0x11c]
add ecx, ebx
adc eax, esi
push eax
push ecx
mov ecx, edi
call fcn.00422050
mov eax, dword [ebp - 0x14c]
shl eax, 2
push eax
mov dword [ebp - 0x11c], eax
call fcn.004246c2
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x130], edi
test edi, edi
jne 0x4227be
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
jmp 0x422846
mov ecx, dword [ebp - 0x144]
xor eax, eax
mov edx, dword [ebp - 0x11c]
add ecx, ebx
adc eax, esi
push eax
push ecx
mov ecx, edi
call fcn.00422050
xor edx, edx
add esp, 8
cmp dword [ebp - 0x150], edx
jbe 0x42281a
jmp 0x4227f0
mov eax, dword [ebp - 0x130]
mov ecx, dword [eax + edx*4]
xor eax, eax
add ecx, ebx
adc eax, esi
push eax
push ecx
call fcn.004220d0
add esp, 8
test al, al
jne 0x4228a9
inc edx
cmp edx, dword [ebp - 0x150]
jb 0x4227f0
xorps xmm0, xmm0
movlpd qword [ebp - 0x120], xmm0
mov byte [ebp - 4], 1
mov eax, dword [ebp - 0x130]
test eax, eax
je 0x422846
push eax
call fcn.0042468a
add esp, 4
mov dword [ebp - 0x130], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x422867
push eax
call fcn.0042468a
add esp, 4
mov dword [ebp - 0x12c], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x134]
test eax, eax
je 0x422881
push eax
call fcn.0042468a
add esp, 4
mov eax, dword [ebp - 0x120]
mov edx, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00422f38
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x12c]
movzx ecx, word [eax + edx*2]
mov eax, dword [ebp - 0x134]
mov eax, dword [eax + ecx*4]
xor ecx, ecx
add eax, ebx
mov dword [ebp - 0x120], eax
adc ecx, esi
mov dword [ebp - 0x11c], ecx
jmp 0x422825