Function at 0x44cde0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x130
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
call sub.msvcrt.dll_localeconv
mov eax, dword [eax]
mov dword [esp + 0x14], eax
push eax
call sub.msvcrt.dll_strlen
add esp, 4
mov edi, eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], 0
mov eax, dword [ebx]
mov dword [esp + 0x4c], eax
lea ebx, [esi + 1]
jmp 0x44ce41
inc ebx
movzx edx, byte [ebx - 1]
movsx eax, dl
lea ecx, [eax - 9]
cmp ecx, 5
jb 0x44ce40
cmp eax, 0x2a
jg 0x44ce60
cmp eax, 0x20
je 0x44ce40
test eax, eax
je 0x44ce7e
jmp 0x44ce97
cmp eax, 0x2b
je 0x44ce71
cmp eax, 0x2d
jne 0x44ce97
mov ecx, 1
jmp 0x44ce73
xor ecx, ecx
mov dword [esp + 0x1c], ebx
movzx edx, byte [ebx]
test dl, dl
jne 0x44ce9e
mov dword [esp + 0x10], 6
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
xor ecx, ecx
mov edi, dword [ebp + 0xc]
jmp 0x44e729
dec ebx
mov dword [esp + 0x1c], ebx
xor ecx, ecx
cmp dl, 0x30
mov byte [esp + 0x74], dl
jne 0x44cef2
movsx eax, byte [ebx + 1]
or eax, 0x20
cmp eax, 0x78
jne 0x44d00c
lea eax, [esp + 0x58]
mov esi, ecx
lea ecx, [esp + 0x1c]
push esi
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ecx
call fcn.004546e0
mov ecx, esi
add esp, 0x14
mov dword [esp + 0x10], eax
cmp eax, 6
mov edi, dword [ebp + 0xc]
jne 0x44e729
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
xor ecx, ecx
jmp 0x44e729
mov dword [esp + 0x90], edi
mov dword [esp + 0x44], ecx
mov eax, edx
add al, 0xd0
mov dword [esp + 0x80], 0
cmp al, 9
ja 0x44cf5f
mov dword [esp + 0x20], ebx
xor ecx, ecx
xor edi, edi
xor esi, esi
jmp 0x44cf47
lea edx, [edi + edi*4]
lea edi, [eax + edx*2]
add edi, 0xffffffd0
lea ebx, [esi + 1]
mov edx, dword [esp + 0x20]
lea eax, [edx + esi]
inc eax
mov dword [esp + 0x1c], eax
movzx edx, byte [edx + esi + 1]
mov eax, edx
add al, 0xd0
cmp al, 0xa
mov esi, ebx
jae 0x44cf6f
movzx eax, dl
cmp esi, 8
jbe 0x44cf20
cmp esi, 0xf
ja 0x44cf29
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2]
add ecx, 0xffffffd0
jmp 0x44cf29
mov dword [esp + 0x38], 0
xor edi, edi
xor ecx, ecx
mov esi, ebx
jmp 0x44cf79
mov dword [esp + 0x38], esi
mov ebx, dword [esp + 0x20]
add esi, ebx
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x88], eax
movsx eax, dl
mov dword [esp + 0x20], eax
mov al, 1
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x14]
cmp dl, byte [eax]
jne 0x44cff7
movzx eax, byte [eax + 1]
mov edx, 1
test al, al
je 0x44cfc3
nop dword [eax + eax]
cmp byte [esi + edx], al
jne 0x44cff7
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + edx + 1]
inc edx
test al, al
jne 0x44cfb0
lea eax, [esi + edx]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], eax
movsx eax, byte [esi + edx]
mov dword [esp + 0x20], eax
xor edx, edx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x44d03e
mov esi, eax
mov dword [esp + 0x18], 0
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x20]
jmp 0x44d0af
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x38]
mov dword [esp + 0x18], 0
jmp 0x44d1e1
mov dword [esp + 0x90], edi
inc ebx
nop word cs:[eax + eax]
mov dword [esp + 0x1c], ebx
movzx edx, byte [ebx]
inc ebx
cmp edx, 0x30
je 0x44d020
test edx, edx
mov edi, dword [ebp + 0xc]
je 0x44e729
dec ebx
jmp 0x44cef9
xor esi, esi
cmp byte [esp + 0x20], 0x30
jne 0x44d071
xor eax, eax
mov esi, dword [esp + 0xc]
nop dword [eax]
lea edx, [esi + eax]
inc edx
mov dword [esp + 0x1c], edx
movsx edx, byte [esi + eax + 1]
inc eax
cmp edx, 0x30
je 0x44d050
mov dword [esp + 0x20], edx
add dword [esp + 0xc], eax
mov edx, eax
xor esi, esi
jmp 0x44d073
xor edx, edx
mov eax, dword [esp + 0x20]
add eax, 0xffffffcf
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x18], edx
cmp dword [esp + 0x14], 9
mov eax, 0
jae 0x44d1e1
jmp 0x44d0c3
lea eax, [ebx - 0x30]
cmp eax, 9
mov dword [esp + 0x20], ebx
ja 0x44d1ce
mov eax, dword [esp + 0x18]
mov dword [esp + 0x14], esi
lea esi, [eax + 1]
mov ebx, dword [esp + 0x20]
add ebx, 0xffffffd0
je 0x44d173
add edx, esi
test eax, eax
mov dword [esp + 0x5c], edx
jle 0x44d181
mov dword [esp + 0x20], ebx
cmp eax, 1
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
je 0x44d140
mov ebx, eax
and ebx, 0xfffffffe
mov esi, edx
nop dword [eax]
lea edx, [edi + edi]
lea eax, [ecx + ecx]
cmp esi, 0x10
lea eax, [eax + eax*4]
cmovge eax, ecx
cmp esi, 9
lea edx, [edx + edx*4]
cmovge edx, edi
cmovl eax, ecx
lea edi, [edx + edx]
lea ecx, [eax + eax]
cmp esi, 0xf
lea ecx, [ecx + ecx*4]
cmovge ecx, eax
cmp esi, 8
lea edi, [edi + edi*4]
cmovge edi, edx
lea edx, [esi + 2]
cmovl ecx, eax
mov esi, edx
add ebx, 0xfffffffe
jne 0x44d100
mov eax, dword [esp + 0x18]
test al, 1
mov ebx, dword [esp + 0x20]
je 0x44d16b
lea eax, [edi + edi]
lea esi, [ecx + ecx]
cmp edx, 0x10
lea esi, [esi + esi*4]
cmovge esi, ecx
cmp edx, 9
lea eax, [eax + eax*4]
cmovl edi, eax
mov eax, dword [esp + 0x18]
cmovge ecx, esi
mov esi, dword [esp + 0x14]
add esi, eax
jmp 0x44d185
mov dword [esp + 0x5c], edx
mov dword [esp + 0x18], esi
mov edx, dword [esp + 0x14]
jmp 0x44d1b0
mov esi, dword [esp + 0x14]
lea edx, [esi + 1]
cmp esi, 8
jg 0x44d19d
lea eax, [edi + edi*4]
lea edi, [ebx + eax*2]
mov dword [esp + 0x18], 0
jmp 0x44d1b0
mov dword [esp + 0x18], 0
cmp esi, 0xf
ja 0x44d1b0
lea eax, [ecx + ecx*4]
lea ecx, [ebx + eax*2]
mov esi, dword [esp + 0xc]
lea eax, [esi + 1]
mov dword [esp + 0x1c], eax
movsx ebx, byte [esi + 1]
mov dword [esp + 0xc], eax
mov esi, edx
mov edx, dword [esp + 0x5c]
jmp 0x44d0af
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], 0
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
and eax, 0xffffffdf
xor edx, edx
cmp eax, 0x45
jne 0x44d226
movzx eax, byte [esp + 0x74]
cmp al, 0x30
je 0x44d308
test esi, esi
jne 0x44d308
cmp dword [esp + 0x18], 0
jne 0x44d308
mov dword [esp + 0x10], 6
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
mov edi, dword [ebp + 0xc]
jmp 0x44e725
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x10]
test esi, esi
je 0x44d274
mov dword [esp + 0x10], 1
mov eax, dword [eax + 0xc]
and eax, 3
mov dword [esp + 0x48], edx
je 0x44d429
cmp eax, 3
je 0x44d433
mov dword [esp + 0x54], 0
cmp eax, 2
jne 0x44d43c
mov eax, 2
sub eax, dword [esp + 0x44]
jmp 0x44d438
cmp byte [esp + 0x74], 0x30
je 0x44d786
cmp dword [esp + 0x18], 0
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 0x44]
jne 0x44e729
cmp byte [esp + 0x7c], 0
mov eax, dword [esp + 0x20]
je case.0x44d2ac.74
add eax, 0xffffffb7
cmp eax, 0x25
ja case.0x44d2ac.74
jmp dword [eax*4 + 0x45dfb8]
lea esi, [esp + 0x1c]
push 0x45e050
push esi
call fcn.004550f0
mov ecx, dword [esp + 0x4c]
add esp, 8
test eax, eax
je case.0x44d2ac.74
dec dword [esp + 0x1c]
push str.inity
push esi
call fcn.004550f0
add esp, 8
test eax, eax
jne 0x44d2eb
inc dword [esp + 0x1c]
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov edx, 3
mov esi, dword [ebp + 0x14]
jmp 0x44e6be
mov eax, dword [esp + 0xc]
lea edx, [eax + 1]
mov dword [esp + 0x1c], edx
movsx eax, byte [eax + 1]
mov dword [esp + 0x54], 0
cmp eax, 0x2b
je 0x44d331
cmp eax, 0x2d
jne 0x44d340
mov dword [esp + 0x54], 1
mov eax, dword [esp + 0xc]
lea edx, [eax + 2]
mov dword [esp + 0x1c], edx
movsx eax, byte [eax + 2]
mov dword [esp + 0x20], eax
add eax, 0xffffffd0
cmp eax, 9
ja 0x44d41a
cmp dword [esp + 0x20], 0x30
jne 0x44d372
inc edx
nop dword [eax + eax]
mov dword [esp + 0x1c], edx
movsx eax, byte [edx]
inc edx
cmp eax, 0x30
je 0x44d360
mov dword [esp + 0x20], eax
dec edx
mov eax, dword [esp + 0x20]
add eax, 0xffffffcf
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], 8
ja 0x44d5d7
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x20]
add eax, 0xffffffd0
mov dword [esp + 0x5c], eax
lea eax, [edx + 1]
mov dword [esp + 0x1c], eax
mov ah, byte [edx + 1]
mov al, ah
add al, 0xd0
cmp al, 9
ja 0x44d66f
mov dword [esp + 0x6c], edx
lea esi, [edx + 2]
nop word cs:[eax + eax]
movzx eax, ah
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
lea eax, [eax + eax*4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x48]
lea eax, [eax + edx*2 - 0x30]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x1c], esi
mov ah, byte [esi]
mov al, ah
add al, 0xd0
inc esi
cmp al, 0xa
jb 0x44d3c0
mov byte [esp + 0x70], ah
mov eax, dword [esp + 0x20]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x48]
lea eax, [eax + esi*2]
mov esi, dword [esp + 0x84]
add esi, 0xfffffffe
mov edx, dword [esp + 0x6c]
jmp 0x44d679
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
xor edx, edx
jmp 0x44d22d
mov dword [esp + 0x54], 1
jmp 0x44d43c
mov eax, dword [esp + 0x44]
inc eax
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x38]
test eax, eax
cmove eax, esi
mov dword [esp + 0x38], eax
cmp esi, 0x11
mov edx, 0x11
mov dword [esp + 0x14], esi
cmovl edx, esi
movd xmm1, edi
por xmm1, xmmword [0x45df50]
subsd xmm1, qword [0x45df60]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0xc0], xmm1
cmp edx, 0xa
jl 0x44d4c2
movd xmm0, ecx
por xmm0, xmmword [0x45df50]
subsd xmm0, qword [0x45df60]
mov eax, dword [0x45e0bc]
mulsd xmm1, qword [eax + edx*8 - 0x48]
addsd xmm1, xmm0
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0xb8], xmm1
mov eax, dword [esp + 0xb8]
mov esi, dword [esp + 0xbc]
jmp 0x44d4d0
mov eax, dword [esp + 0xc0]
mov esi, dword [esp + 0xc4]
mov ecx, edx
mov edx, dword [esp + 0x48]
sub edx, dword [esp + 0x80]
cmp dword [esp + 0x4c], 0x35
mov dword [esp + 0x48], edx
jg 0x44d64e
cmp dword [esp + 0x14], 0xf
jg 0x44d64e
test edx, edx
je 0x44d598
jle 0x44d5e1
mov dword [esp + 0xc], ecx
cmp edx, 0x16
ja 0x44d655
or esi, 0x100000
xor ecx, ecx
test eax, eax
setne cl
cmovne esi, eax
shl ecx, 5
add ecx, dword [edx*4 + 0x45e05c]
tzcnt eax, esi
sub ecx, eax
add ecx, 0x15
xor eax, eax
cmp ecx, 0x36
setl al
mov ecx, dword [0x45e0bc]
mulsd xmm1, qword [ecx + edx*8]
movapd xmmword [esp + 0x20], xmm1
movsd qword [esp + 0x60], xmm1
lea ecx, [esp + 0x60]
mov edx, dword [ebp + 0x10]
lea esi, [esp + 0x10]
push esi
push dword [esp + 0x58]
push eax
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.0044e7f0
movapd xmm1, xmmword [esp + 0x34]
add esp, 0x14
movsd qword [esp + 0xf0], xmm1
test eax, eax
jne 0x44d786
xor eax, eax
mov esi, dword [esp + 0xf4]
jmp 0x44d79f
mov dword [esp + 0xc], ecx
movapd xmmword [esp + 0x20], xmm1
lea eax, [esp + 0x10]
lea ecx, [esp + 0x60]
mov edx, dword [ebp + 0x10]
push eax
push dword [esp + 0x58]
push 1
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.0044e7f0
add esp, 0x14
test eax, eax
jne 0x44d786
xor eax, eax
movapd xmm1, xmmword [esp + 0x20]
jmp 0x44d79f
mov eax, dword [ebp + 0x10]
xor edx, edx
jmp 0x44d230
cmp edx, 0xffffffea
jb 0x44d64e
mov dword [esp + 0xc], ecx
lea eax, [edx*8]
mov ecx, dword [0x45e0bc]
sub ecx, eax
divsd xmm1, qword [ecx]
movapd xmmword [esp + 0x20], xmm1
movsd qword [esp + 0x60], xmm1
lea eax, [esp + 0x10]
lea ecx, [esp + 0x60]
mov edx, dword [ebp + 0x10]
push eax
push dword [esp + 0x58]
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.0044e7f0
movapd xmm1, xmmword [esp + 0x34]
add esp, 0x14
movsd qword [esp + 0x100], xmm1
test eax, eax
jne 0x44d786
xor eax, eax
mov esi, dword [esp + 0x104]
jmp 0x44d79f
mov eax, edx
jmp 0x44d7a3
mov eax, 0x25
mov ecx, dword [esp + 0x14]
sub eax, ecx
cmp edx, eax
jle 0x44d72c
mov eax, edx
jmp 0x44d79f
mov byte [esp + 0x70], ah
mov esi, edx
mov eax, dword [esp + 0x20]
sub esi, edx
inc esi
cmp eax, 0x4e50
mov edx, 0x4e1f
mov eax, dword [esp + 0x5c]
cmovge eax, edx
cmp esi, 9
cmovge eax, edx
mov edx, eax
neg edx
cmp dword [esp + 0x54], 0
cmove edx, eax
movsx eax, byte [esp + 0x70]
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x44d230
lea esi, [esp + 0x1c]
push 0x45e059
push esi
call fcn.004550f0
mov ecx, dword [esp + 0x4c]
add esp, 8
test eax, eax
mov ebx, dword [ebp + 0x10]
je case.0x44d2ac.74
mov dword [esp + 0x10], 4
mov eax, dword [ebx + 8]
inc eax
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc], 0
mov edx, 4
cmp byte [eax], 0x28
jne 0x44d78e
push dword [ebp + 0x18]
push ebx
push esi
call fcn.00455290
add esp, 0xc
mov edx, eax
mov dword [esp + 0x10], eax
mov esi, dword [ebp + 0x14]
jmp 0x44e6c1
mov dword [esp + 0x10], 6
mov eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
jmp 0x44e729
mov eax, 0xf
sub eax, ecx
mov ecx, edx
mov edx, dword [0x45e0bc]
mulsd xmm1, qword [edx + eax*8]
sub ecx, eax
mulsd xmm1, qword [edx + ecx*8]
movapd xmmword [esp + 0x20], xmm1
movsd qword [esp + 0x60], xmm1
lea eax, [esp + 0x10]
lea ecx, [esp + 0x60]
mov edx, dword [ebp + 0x10]
push eax
push dword [esp + 0x58]
push 0
push dword [ebp + 0x18]
push dword [ebp + 0x14]
call fcn.0044e7f0
movapd xmm1, xmmword [esp + 0x34]
add esp, 0x14
movsd qword [esp + 0xf8], xmm1
test eax, eax
je 0x44d796
mov edi, dword [ebp + 0xc]
jmp 0x44e725
mov esi, dword [ebp + 0x14]
jmp 0x44e6c1
xor eax, eax
mov esi, dword [esp + 0xfc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x14]
sub edx, ecx
add edx, eax
jle 0x44d89b
mov eax, edx
and eax, 0xf
je 0x44d7d9
mov ecx, dword [0x45e0bc]
mulsd xmm1, qword [ecx + eax*8]
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0xd8], xmm1
mov esi, dword [esp + 0xdc]
xor ecx, ecx
cmp edx, 0x10
jb 0x44d999
mov ecx, edx
shr ecx, 4
xor eax, eax
cmp edx, 0x100
jb 0x44d84a
mov eax, dword [0x45e0b8]
movsd xmm0, qword [eax + 0x20]
xor eax, eax
nop
mov edx, esi
shr edx, 0x14
and edx, 0x7ff
add eax, edx
add eax, 0xfffffc01
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x64], esi
movsd xmm1, qword [esp + 0x60]
mulsd xmm1, xmm0
movsd qword [esp + 0x60], xmm1
add ecx, 0xfffffff0
movsd qword [esp + 0xd0], xmm1
mov esi, dword [esp + 0xd4]
cmp ecx, 0xf
ja 0x44d800
mov edx, esi
shr edx, 0x14
and edx, 0x7ff
mov dword [esp + 0x20], edx
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x64], esi
movsd xmm1, qword [esp + 0x60]
test ecx, ecx
je 0x44d987
mov esi, dword [0x45e0b8]
jmp 0x44d890
mov edx, ecx
shr ecx, 1
add esi, 8
cmp edx, 2
jb 0x44d987
test cl, 1
je 0x44d880
mulsd xmm1, qword [esi]
jmp 0x44d880
xor ecx, ecx
test edx, edx
jns 0x44d999
neg edx
mov eax, edx
and eax, 0xf
je 0x44d8d1
mov ecx, dword [0x45e0bc]
divsd xmm1, qword [ecx + eax*8]
xor ecx, ecx
movsd qword [esp + 0x60], xmm1
movsd qword [esp + 0xe8], xmm1
mov esi, dword [esp + 0xec]
cmp edx, 0x10
jb 0x44d999
mov ecx, edx
shr ecx, 4
xor eax, eax
cmp edx, 0x100
jb 0x44d93f
mov eax, dword [0x45e0c0]
movsd xmm0, qword [eax + 0x20]
xor eax, eax
mov edx, esi
shr edx, 0x14
and edx, 0x7ff
add eax, edx
add eax, 0xfffffc01
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x64], esi
movsd xmm1, qword [esp + 0x60]
mulsd xmm1, xmm0
movsd qword [esp + 0x60], xmm1
add ecx, 0xfffffff0
movsd qword [esp + 0xe0], xmm1
mov esi, dword [esp + 0xe4]
cmp ecx, 0xf
ja 0x44d8f5
mov edx, esi
shr edx, 0x14
and edx, 0x7ff
mov dword [esp + 0x20], edx
and esi, 0x800fffff
or esi, 0x3ff00000
mov dword [esp + 0x64], esi
movsd xmm1, qword [esp + 0x60]
test ecx, ecx
je 0x44d987
mov esi, dword [0x45e0c0]
jmp 0x44d97c
mov edx, ecx
shr ecx, 1
add esi, 8
cmp edx, 2
jb 0x44d987
test cl, 1
je 0x44d970
mulsd xmm1, qword [esi]
jmp 0x44d970
mov ecx, dword [esp + 0x20]
add ecx, eax
add ecx, 0xfffffc01
movsd qword [esp + 0x60], xmm1
sub esp, 0x10
lea eax, [esp + 0x4c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
movsd qword [esp], xmm1
mov esi, ecx
call fcn.00454540
mov edx, esi
add esp, 0x10
mov dword [esp + 0x58], eax
add edx, dword [esp + 0x40]
mov dword [esp + 0x40], edx
mov ecx, dword [esp + 0x3c]
mov esi, ecx
sub esi, dword [esp + 0x4c]
mov dword [esp + 0x20], eax
jle 0x44d9f5
push esi
push eax
call fcn.004557a0
add esp, 8
add esi, dword [esp + 0x40]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], esi
mov edx, esi
mov dword [esp + 0x18], edx
sub edx, dword [esp + 0x4c]
mov eax, ecx
add edx, ecx
mov esi, dword [ebp + 0x10]
mov ecx, dword [esi + 8]
inc ecx
mov dword [esp + 0xc], 0
cmp edx, ecx
jle 0x44da21
mov edi, dword [ebp + 0xc]
mov ebx, esi
mov esi, dword [ebp + 0x14]
jmp 0x44e5ef
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], edx
cmp edx, ecx
mov esi, dword [ebp + 0x14]
mov edx, ecx
mov dword [esp + 0x6c], ecx
jge 0x44da66
mov edx, dword [esp + 0x18]
sub edx, ecx
mov ecx, edx
jle 0x44e1ec
push ecx
push dword [esp + 0x24]
mov esi, ecx
call fcn.00454040
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
add dword [esp + 0x3c], esi
mov esi, dword [ebp + 0x14]
jmp 0x44e413
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0x90]
push eax
push edi
push dword [esp + 0x1c]
push dword [esp + 0x44]
push ebx
call fcn.00454f60
add esp, 0x14
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x8c], eax
add eax, 0xc
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x48]
mov edx, eax
neg edx
test eax, eax
mov ecx, 0
cmovs eax, ecx
mov dword [esp + 0x48], eax
cmovns edx, ecx
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x54]
and eax, 1
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0xac], eax
mov dword [esp + 0x38], 0
jmp 0x44db2f
ucomisd xmm2, xmm3
ja 0x44e313
mov dword [esp + 0x38], 0
cmp dword [esp + 0xc], 0
je 0x44de14
push eax
call fcn.00453a90
add esp, 4
push dword [esp + 0x5c]
call fcn.00453a90
add esp, 4
push dword [esp + 0x18]
call fcn.00453a90
add esp, 4
push dword [esp + 0x74]
call fcn.00453a90
add esp, 4
mov esi, dword [esp + 0x8c]
push dword [esi + 4]
call fcn.00453930
add esp, 4
mov dword [esp + 0x5c], eax
add eax, 0xc
mov ecx, dword [esi + 0x10]
lea ecx, [ecx*4 + 8]
push ecx
push dword [esp + 0xb4]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x20]
push dword [esi + 4]
call fcn.00453930
add esp, 4
mov dword [esp + 0x14], eax
add eax, 0xc
lea ecx, [esi + 0xc]
mov edx, dword [esi + 0x10]
lea edx, [edx*4 + 8]
push edx
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov esi, dword [esp + 0x3c]
mov edi, esi
mov eax, dword [esp + 0x38]
sub edi, eax
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x18], ecx
lea ebx, [ecx + eax]
push 1
call fcn.00453c50
add esp, 4
test ebx, ebx
mov edx, ebx
mov ecx, 0
cmovns edx, ecx
cmovs ebx, ecx
mov ecx, dword [esp + 0x48]
sub ecx, edx
mov edx, dword [esp + 0x80]
add ebx, edx
sub esi, dword [esp + 0x4c]
add esi, dword [esp + 0x18]
mov edx, dword [esp + 0xac]
mov dword [esp + 0x70], edi
sub edx, edi
sub esi, dword [esp + 0x6c]
mov edi, 0
cmovge esi, edi
add esi, edx
lea edx, [ebx + esi]
add esi, ecx
cmp edx, esi
mov edi, esi
mov dword [esp + 0x7c], edx
cmovl edi, edx
cmp edi, ebx
mov dword [esp + 0x74], ebx
cmovge edi, ebx
test edi, edi
mov ecx, 0
cmovle edi, ecx
mov ecx, dword [esp + 0x80]
test ecx, ecx
jle 0x44dc56
push ecx
push eax
call fcn.00453e60
add esp, 8
mov ebx, dword [esp + 0x14]
push ebx
mov dword [esp + 0x1c], eax
push eax
call fcn.00453cf0
add esp, 8
mov dword [esp + 0x90], eax
push ebx
call fcn.00453a90
add esp, 4
mov eax, dword [esp + 0x90]
jmp 0x44dc5e
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
add ecx, edi
mov edx, dword [esp + 0x7c]
sub edx, ecx
test edx, edx
jle 0x44dc7e
push edx
push eax
call fcn.00454040
add esp, 8
mov dword [esp + 0x14], eax
jmp 0x44dc90
mov dword [esp + 0x14], eax
jns 0x44dc90
neg edx
push edx
push eax
call fcn.004557a0
add esp, 8
sub esi, edi
mov eax, dword [esp + 0x48]
test eax, eax
je 0x44dca9
push eax
push dword [esp + 0x60]
call fcn.00453e60
add esp, 8
jmp 0x44dcad
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x74]
sub ecx, edi
test esi, esi
jle 0x44dcc5
push esi
push eax
mov esi, ecx
call fcn.00454040
mov ecx, esi
add esp, 8
mov edi, dword [ebp + 0xc]
test ecx, ecx
jle 0x44dce1
push ecx
push dword [esp + 0x1c]
mov esi, eax
call fcn.00454040
add esp, 8
mov dword [esp + 0x18], eax
mov eax, esi
mov dword [esp + 0x5c], eax
push eax
push dword [esp + 0x18]
call fcn.00454270
add esp, 8
cmp dword [eax + 0x10], 1
mov dword [esp + 0x74], eax
jg 0x44dd06
cmp dword [eax + 0x14], 0
je 0x44e215
mov esi, dword [eax + 0xc]
mov dword [eax + 0xc], 0
push dword [esp + 0x18]
push eax
call fcn.00454210
add esp, 8
cmp dword [esp + 0x54], 0
je 0x44dd5c
test eax, eax
jg 0x44dd5c
mov eax, esi
xor eax, dword [esp + 0xa8]
je 0x44e225
mov dword [esp + 0x38], eax
test esi, esi
je 0x44de3e
mov dl, 1
xor ecx, ecx
mov dword [esp + 0x78], 0x20
mov dword [esp + 0x50], 0x21
jmp 0x44df03
test eax, eax
js 0x44e23e
mov eax, dword [esp + 0x18]
je 0x44e2bc
push eax
push dword [esp + 0x78]
call fcn.00455030
add esp, 8
fstp qword [esp + 0xc8]
movsd xmm1, qword [esp + 0xc8]
movsd xmm0, qword [0x45df68]
ucomisd xmm0, xmm1
jae 0x44de2d
mulsd xmm1, qword [0x45df70]
xor eax, eax
test esi, esi
setne dl
sete al
shl eax, 4
add eax, 0x10
mov dword [esp + 0x78], eax
mov dword [esp + 0x38], 0
movsd xmm0, qword [0x45df78]
ucomisd xmm0, xmm1
jbe 0x44deb3
cvttsd2si ecx, xmm1
cvttpd2dq xmm0, xmm1
cvtdq2pd xmm0, xmm0
subsd xmm1, xmm0
mov eax, dword [esp + 0x54]
cmp eax, 2
je 0x44debb
cmp eax, 1
je 0x44dec1
test eax, eax
jne 0x44df0f
ucomisd xmm1, qword [0x45df70]
jae 0x44decf
jmp 0x44df0f
push dword [esp + 0x20]
call fcn.004558f0
add esp, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x14]
jmp 0x44db02
mov dword [esp + 0x38], 0
mov eax, dword [esp + 0x50]
jmp 0x44deeb
mov dword [esp + 0x50], 0x11
mov eax, dword [esp + 0x68]
cmp eax, dword [esp + 0x6c]
je 0x44e092
xor eax, eax
mov ecx, dword [esp + 0x4c]
mov edx, ecx
cmp ecx, 0x20
jl 0x44de86
xor eax, eax
mov ecx, dword [esp + 0x4c]
nop word [eax + eax]
mov edx, dword [esp + 0x20]
cmp dword [edx + eax*4 + 0x14], 0
jne 0x44dee6
inc eax
lea edx, [ecx - 0x20]
cmp ecx, 0x3f
mov ecx, edx
jg 0x44de70
cmp edx, 2
jl 0x44e3b9
mov ebx, dword [esp + 0x20]
mov edi, dword [ebx + eax*4 + 0x14]
tzcnt ecx, edi
shr edi, cl
mov dword [ebx + eax*4 + 0x14], edi
mov edi, dword [ebp + 0xc]
dec edx
mov eax, 0x11
cmp ecx, edx
jb 0x44deeb
jmp 0x44e3b9
xor ecx, ecx
movapd xmm0, xmm1
jmp 0x44df0f
test esi, esi
jne 0x44dec5
jmp 0x44df0f
test esi, esi
jne 0x44df0f
ucomisd xmm1, qword [0x45dfb0]
jbe 0x44df0f
inc ecx
mov eax, 0x30
sub eax, dword [esp + 0x78]
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
mov dword [esp + 0x78], eax
jmp 0x44df0f
mov eax, 0x11
test esi, esi
mov dword [esp + 0x50], eax
je 0x44e092
mov dl, 1
xor ecx, ecx
mov dword [esp + 0x78], 0x20
movsd xmm0, qword [0x45df80]
movapd xmm1, xmm0
mov dword [esp + 0x7c], edx
movapd xmmword [esp + 0x110], xmm1
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
add edx, eax
mov dword [esp + 0x70], edx
cmp dword [esp + 0xc], 0
movapd xmmword [esp + 0x90], xmm0
mov dword [esp + 0x84], ecx
jne 0x44df6d
mov ebx, dword [esp + 0x4c]
mov esi, ebx
sub esi, eax
jle 0x44df6d
push esi
push dword [esp + 0x24]
call fcn.00454040
movapd xmm0, xmmword [esp + 0x98]
add esp, 8
mov edi, eax
sub dword [esp + 0x40], esi
mov dword [esp + 0x3c], ebx
jmp 0x44df71
mov edi, dword [esp + 0x20]
sub esp, 0x10
lea eax, [esp + 0x11c]
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc4]
mov dword [esp + 8], eax
movsd qword [esp], xmm0
call fcn.00454540
add esp, 0x10
mov esi, eax
mov eax, dword [esp + 0xb4]
test eax, eax
js 0x44e015
je 0x44dfb2
push eax
push esi
call fcn.00454040
add esp, 8
mov esi, eax
cmp byte [esp + 0x7c], 0
je 0x44e028
push esi
push edi
call fcn.00455930
add esp, 8
mov dword [esp + 0x58], eax
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x10]
cmp eax, dword [edi + 0x10]
jg 0x44dfef
mov ecx, dword [esp + 0x20]
bsr ecx, dword [ecx + eax*4 + 0x10]
xor ecx, 0x1f
bsr eax, dword [edi + eax*4 + 0x10]
xor eax, 0x1f
cmp ecx, eax
jae 0x44e12e
cmp dword [esp + 0xc], 0
je 0x44e0c4
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x3c], eax
xor ecx, ecx
cmp eax, dword [esp + 0x4c]
setne cl
mov dword [esp + 0xc], ecx
jmp 0x44e12e
neg eax
push eax
push esi
call fcn.004557a0
add esp, 8
cmp byte [esp + 0x7c], 0
jne 0x44dfb9
push esi
push edi
call fcn.00454270
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
cmp dword [esp + 0xc], 0
mov dword [esp + 0xc], 1
jne 0x44e12e
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x20]
cmp dword [ecx + 0x10], eax
jl 0x44e075
mov ecx, dword [esp + 0x20]
bsr ecx, dword [ecx + eax*4 + 0x10]
xor ecx, 0x1f
bsr eax, dword [edi + eax*4 + 0x10]
xor eax, 0x1f
cmp ecx, eax
jbe 0x44e1df
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
cmp ebx, eax
jne 0x44e0f7
dec dword [esp + 0x3c]
mov dword [esp + 0x68], eax
jmp 0x44e12e
xor ecx, ecx
mov dword [esp + 0x78], 0x10
cmp dword [esp + 0xc], 0
je 0x44e0e4
movsd xmm0, qword [0x45df80]
movapd xmm1, xmm0
mov edx, 0
cmp dword [esp + 0x70], 1
jg 0x44df0f
jmp 0x44e324
push 1
push dword [esp + 0x24]
call fcn.004557a0
add esp, 8
inc dword [esp + 0x40]
inc dword [esp + 0x68]
mov dword [esp + 0xc], 0
jmp 0x44e123
movsd xmm0, qword [0x45df80]
movapd xmm1, xmm0
xor edx, edx
jmp 0x44df0f
push 1
push ecx
call fcn.00454040
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
dec dword [esp + 0x40]
dec ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x84], 0
push esi
call fcn.00453a90
add esp, 4
push edi
call fcn.00453a90
add esp, 4
cmp dword [esp + 0x38], 0
jne 0x44e212
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x40]
cmp dword [esp + 0x70], eax
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
jne 0x44daef
cmp dword [esp + 0x84], 0
je 0x44daef
movapd xmm3, xmmword [esp + 0x90]
mulsd xmm3, qword [0x45df88]
movapd xmm2, xmmword [esp + 0x110]
movapd xmm0, xmm2
addsd xmm0, qword [0x45df90]
movapd xmm1, xmm3
xorpd xmm1, xmmword [0x45dfa0]
ucomisd xmm1, xmm0
ja 0x44dae5
ucomisd xmm0, xmm3
jbe 0x44daef
movapd xmm1, xmm3
movsd xmm0, qword [0x45df80]
subsd xmm0, xmm3
ucomisd xmm0, qword [esp + 0x110]
jbe 0x44daef
jmp 0x44e313
mov dword [esp + 0xc], 0
jmp 0x44e12e
jns 0x44e413
add eax, ecx
mov dword [esp + 0x3c], eax
jle 0x44e3f4
neg ecx
push ecx
push dword [esp + 0x24]
call fcn.004557a0
add esp, 8
jmp 0x44e413
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], eax
jmp 0x44e538
xor eax, eax
test esi, esi
sete al
shl eax, 4
add eax, 0x11
mov dword [esp + 0x10], eax
mov esi, dword [ebp + 0x14]
jmp 0x44e538
xor eax, eax
test esi, esi
sete al
shl eax, 4
add eax, 0x11
mov dword [esp + 0x50], eax
mov dword [esp + 0x10], eax
test esi, esi
mov eax, dword [esp + 0x6c]
jne 0x44e4e4
cmp dword [esp + 0x70], 1
mov esi, dword [ebp + 0x14]
jg 0x44e4e7
cmp dword [esp + 0xc], 0
jne 0x44e4e7
mov esi, dword [esp + 0x68]
cmp esi, eax
je 0x44e3b0
push 1
push dword [esp + 0x78]
call fcn.00454040
add esp, 8
push dword [esp + 0x18]
mov dword [esp + 0x78], eax
push eax
call fcn.00454210
add esp, 8
test eax, eax
jle 0x44e3b0
mov eax, dword [esp + 0x20]
add eax, 0x10
mov ecx, 0x11
jmp 0x44e36a
mov eax, dword [esp + 0x20]
add eax, 0x10
test esi, esi
je 0x44e34e
mov dword [esp + 0x48], 0x11
cmp dword [esp + 0xc], 0
je 0x44e492
mov ecx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x20]
mov edx, eax
lea eax, [ebx + 0x14]
mov edi, ecx
sar edi, 5
lea ebx, [ebx + edi*4]
add ebx, 0x14
mov dword [esp + 0x38], eax
mov edi, eax
mov eax, edx
cmp edi, ebx
jae 0x44e477
cmp dword [edi], 0xffffffff
lea edi, [edi + 4]
je 0x44e2fe
jmp 0x44e492
mov eax, dword [esp + 0x50]
or eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
jmp 0x44e538
mov eax, dword [esp + 0x20]
add eax, 0x10
mov esi, dword [ebp + 0x14]
mov dword [eax], 0
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0x50
mov eax, 0x50
jmp 0x44e538
mov dword [esp + 0x48], 0x21
cmp dword [esp + 0x70], 1
jne 0x44e492
mov esi, dword [esp + 0x68]
mov ecx, 1
mov dword [esp + 0x50], ecx
mov dword [esp + 0x10], ecx
cmp esi, dword [esp + 0x6c]
jne 0x44e4c3
mov dword [esp + 0x10], 0x21
cmp dword [eax], 1
mov esi, dword [ebp + 0x14]
jne 0x44e533
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
cmp eax, 1
mov ecx, dword [esp + 0x88]
cmove ecx, eax
mov dword [esp + 0x88], ecx
jmp 0x44e533
mov edx, dword [esp + 0x50]
jmp 0x44e541
mov dword [esp + 0x10], 0x11
mov eax, dword [esp + 0x68]
dec eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 0x24]
call fcn.0044cd60
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
mov eax, 0x11
mov esi, dword [ebp + 0x14]
jmp 0x44e538
cmp eax, 0xfffffffe
jle 0x44e445
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], 1
mov dword [eax + 0x14], 1
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc], 1
cmp dword [esp + 0x88], 0
mov eax, dword [esp + 0x90]
je 0x44e46e
mov edx, dword [esp + 0x68]
inc edx
cmp edx, ecx
mov dword [esp + 0x68], ecx
jge 0x44da75
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], 0
mov dword [esp + 0x20], eax
mov dword [eax + 0x14], 0
mov eax, dword [esp + 0x6c]
mov dword [esi], eax
mov edx, 0x50
mov edi, dword [ebp + 0xc]
jmp 0x44e6d6
mov dword [esp + 0x68], ecx
jmp 0x44da75
and ecx, 0x1f
je 0x44e76c
mov ebx, 0xffffffff
shl ebx, cl
or ebx, dword [edi]
cmp ebx, 0xffffffff
je 0x44e76c
mov edx, dword [esp + 0x48]
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x70]
cmp ecx, dword [esp + 0x4c]
jge 0x44e4af
cmp dword [esp + 0xc], 0
je 0x44e7a1
mov ecx, dword [esp + 0x20]
test byte [ecx + 0x14], 1
mov edi, dword [ebp + 0xc]
jne 0x44e4ed
mov eax, edx
mov esi, dword [ebp + 0x14]
jmp 0x44e538
mov eax, dword [esp + 0x4c]
sub dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
push eax
push dword [esp + 0x24]
call fcn.0044cd60
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
mov esi, dword [ebp + 0x14]
mov eax, dword [esp + 0x50]
jmp 0x44e538
test esi, esi
je 0x44e7a9
push dword [esp + 0x20]
call fcn.0044cca0
add esp, 4
mov dword [esp + 0x58], eax
mov ebx, dword [esp + 0x3c]
mov ecx, ebx
neg ecx
and ecx, 0x1f
mov edx, dword [eax + 0x10]
mov dword [esp + 0x20], eax
bsr edx, dword [eax + edx*4 + 0x10]
xor edx, 0x1f
cmp edx, ecx
mov esi, dword [ebp + 0x14]
je 0x44e52b
inc ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x10], 0x21
mov eax, 0x21
mov edx, eax
cmp dword [esp + 0xc], 0
jne 0x44e593
mov dword [esp + 0xc], 0
mov esi, dword [esp + 0x4c]
sub esi, dword [esp + 0x3c]
jne 0x44e558
mov esi, dword [ebp + 0x14]
jmp 0x44e593
mov dword [esp + 0x48], edx
test esi, esi
jle 0x44e577
push esi
push dword [esp + 0x24]
call fcn.00454040
add esp, 8
mov dword [esp + 0x20], eax
mov dword [esp + 0x58], eax
jmp 0x44e588
mov eax, esi
neg eax
push eax
push dword [esp + 0x24]
call fcn.004557a0
add esp, 8
sub dword [esp + 0x40], esi
mov esi, dword [ebp + 0x14]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x40]
mov dword [esi], eax
push dword [esp + 0x14]
mov esi, edx
call fcn.00453a90
add esp, 4
push dword [esp + 0x5c]
call fcn.00453a90
add esp, 4
push dword [esp + 0x18]
call fcn.00453a90
add esp, 4
push dword [esp + 0x8c]
call fcn.00453a90
add esp, 4
push dword [esp + 0x74]
call fcn.00453a90
mov edx, esi
mov esi, dword [ebp + 0x14]
add esp, 4
mov eax, dword [esp + 0x40]
mov ebx, dword [ebp + 0x10]
cmp eax, dword [ebx + 8]
jle 0x44e6cf
push dword [esp + 0x20]
call fcn.00453a90
add esp, 4
mov dword [esp + 0x58], 0
call sub.msvcrt.dll__errno
mov dword [eax], 0x22
mov eax, dword [ebx + 0xc]
and eax, 3
cmp eax, 1
je 0x44e68e
cmp eax, 3
mov ecx, dword [esp + 0x44]
je 0x44e68a
cmp eax, 2
jne 0x44e62e
cmp dword [esp + 0x44], 0
je 0x44e68e
mov dword [esp + 0x10], 0x11
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx + 8]
mov dword [esi], eax
mov ebx, dword [ecx]
lea esi, [ebx + 0x1f]
sar esi, 5
test ebx, ebx
jle 0x44e673
mov edx, dword [ebp + 0x18]
lea eax, [edx + esi*4]
lea ecx, [edx + 4]
cmp eax, ecx
cmova ecx, eax
mov eax, edx
not eax
add eax, ecx
and eax, 0xfffffffc
add eax, 4
push eax
push 0xff
push edx
call sub.msvcrt.dll_memset
add esp, 0xc
mov edx, 0x11
and ebx, 0x1f
je 0x44e6c7
mov cl, 0x20
sub cl, bl
mov eax, dword [ebp + 0x18]
shr dword [eax + esi*4 - 4], cl
jmp 0x44e6c7
test ecx, ecx
je 0x44e62e
mov dword [esp + 0x10], 0xa3
mov ecx, dword [esp + 0x4c]
mov eax, ecx
sar eax, 5
and ecx, 0x1f
cmp ecx, 1
sbb eax, 0xffffffff
shl eax, 2
push eax
push 0
push dword [ebp + 0x18]
call sub.msvcrt.dll_memset
add esp, 0xc
mov edx, 0xa3
mov ebx, dword [ebp + 0x10]
mov eax, dword [ebx + 8]
inc eax
mov dword [esi], eax
mov dword [esp + 0x20], 0
cmp dword [esp + 0xc], 0
je 0x44e725
cmp dword [esp + 0x88], 0
je 0x44e6f5
mov eax, dword [esp + 0x20]
mov dword [eax + 0x10], 0
mov dword [esp + 0x10], 0x50
jmp 0x44e71a
mov eax, edx
and eax, 0xfffffff8
xor ecx, ecx
mov esi, dword [esp + 0x20]
cmp dword [esi + 0x10], 0
setg cl
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
test dl, 0x30
je 0x44e725
or eax, 0x40
mov dword [esp + 0x10], eax
call sub.msvcrt.dll__errno
mov dword [eax], 0x22
mov ecx, dword [esp + 0x44]
test edi, edi
je 0x44e733
mov eax, dword [esp + 0x1c]
mov dword [edi], eax
test ecx, ecx
je 0x44e73c
or byte [esp + 0x10], 8
mov eax, dword [esp + 0x58]
test eax, eax
je 0x44e760
push eax
push dword [esp + 0x50]
push dword [ebp + 0x18]
call fcn.00455130
add esp, 0xc
push dword [esp + 0x58]
call fcn.00453a90
add esp, 4
mov eax, dword [esp + 0x10]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [eax], 1
mov eax, dword [esp + 0x38]
mov dword [eax], 1
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x6c]
lea eax, [eax + ecx - 1]
mov dword [esp + 0x40], eax
mov dword [esp + 0x10], 0x21
mov edx, 0x21
mov edi, dword [ebp + 0xc]
jmp 0x44e541
cmp dword [esp + 0x70], 1
mov esi, dword [ebp + 0x14]
je 0x44e32e
mov ecx, dword [esp + 0x20]
add ecx, 0x14
mov eax, dword [eax]
lea eax, [ecx + eax*4]
mov edx, dword [ecx]
test edx, edx
jne 0x44e7d8
mov dword [ecx], 0xffffffff
add ecx, 4
cmp ecx, eax
jb 0x44e7c3
jmp 0x44e7db
dec edx
mov dword [ecx], edx
mov dword [esp + 0x10], 0x11
mov eax, 0x11
jmp 0x44e538