Function at 0x44d922
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x8c
mov ebx, ecx
mov eax, dword [0x4c1074]
xor eax, esp
mov dword [esp + 0x88], eax
mov eax, 0x400
mov dword [esp + 0x84], eax
xor esi, esi
push esi
push 2
push eax
call fcn.004115d0
add esp, 0xc
mov dword [esp + 0x2c], eax
mov dword [esp + 0x4c], 0
push esi
push 0x14
push dword [ebx + 0x12c]
call fcn.004115d0
add esp, 0xc
mov cl, byte [ebx + 0xbe]
cmp cl, byte [ebx + 0x135]
mov edi, eax
setne byte [esp + 4]
cmp byte [ebx + 0xc4], 0
je 0x44d9d2
cmp byte [ebx + 0x134], 0
je 0x44d9b7
mov eax, 0x40000000
cmp byte [ebx + 0xc7], 0
jne 0x44d9bc
xor eax, eax
cmp byte [ebx + 0x10ca], 0
sete al
shl eax, 0x1e
jmp 0x44d9bc
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [ebx + 0xae], 0
cmove ecx, eax
mov dword [esp + 0x4c], ecx
mov edx, dword [ebx + 0x94]
mov esi, edx
sub esi, dword [ebx + 0x10]
mov ecx, ebx
push 0
push 0x1673
call fcn.0044f822
add esp, 8
mov ebp, dword [ebx + 0x98]
mov ecx, ebx
mov dword [esp + 0xc], eax
mov edx, eax
push esi
call fcn.00452072
add esp, 4
test eax, eax
mov dword [esp + 0x30], esi
je 0x44da23
mov ecx, dword [ebx + 0x109c]
lea edx, [esi + esi*4]
mov ecx, dword [ecx + edx*4 + 0xc]
mov ebp, dword [ecx + ebp*4]
mov esi, dword [esp + 0xc]
jmp 0x44da2a
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x14]
test ebp, ebp
jle 0x44da45
lea ecx, [ebp*4]
add ecx, ebp
xor edx, edx
cmp dword [eax + ecx*4], 0xdfff
sete dl
sub ebp, edx
mov dword [esp + 0x1c], ebp
cmp byte [esi + 0xc], 0
je 0x44da63
push dword [esi + 0x14]
call fcn.00411645
add esp, 4
push esi
call fcn.00411645
add esp, 4
mov ecx, dword [ebx + 0x20]
test ecx, ecx
mov dword [esp], ebx
js 0x44dadd
mov eax, dword [ebx + 0x1c]
cmp ecx, dword [esp + 0x30]
jne 0x44da85
mov edx, dword [esp + 0x4c]
cmp dword [ebx + 0x24], edx
jne 0x44da85
cmp eax, dword [esp + 0x1c]
je 0x44dadd
mov edx, dword [ebx + 0x18]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 0x14]
lea edx, [eax + eax*4]
lea esi, [ecx + edx*4]
test eax, eax
jle 0x44daad
cmp dword [esi], 0xdfff
jne 0x44daad
or dword [esi - 0x10], 0x3ffff
mov eax, dword [esp]
mov eax, dword [eax + 0x1c]
mov ebx, dword [esp]
mov ebx, dword [ebx + 0x12c]
dec ebx
cmp eax, ebx
jge 0x44dacb
cmp dword [esi + 0x14], 0xdfff
jne 0x44dacb
or dword [esi + 0x18], 0x3ffff
or dword [ecx + edx*4 + 4], 0x3ffff
mov ebx, dword [esp]
mov dword [ebx + 0x24], 0
xor eax, eax
dec eax
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x1c], eax
cmp dword [ebx + 0x128], 0
jle 0x44e665
xor eax, eax
mov cl, byte [esp + 4]
mov al, cl
shl eax, 0x14
mov dword [esp + 0x50], eax
xor esi, esi
mov dword [esp + 0x28], edi
mov edx, dword [ebx + 0x10]
add edx, esi
mov ecx, ebx
mov dword [esp + 0x18], edx
push 0
push 0x16a9
call fcn.0044f822
add esp, 8
mov edi, eax
mov ecx, ebx
mov edx, eax
push esi
call fcn.00452072
add esp, 4
test eax, eax
mov ebp, esi
mov dword [esp + 0x40], edi
je 0x44db54
mov edx, eax
mov eax, dword [ebx + 0x109c]
lea ecx, [ebp*4]
add ecx, ebp
mov edi, dword [eax + ecx*4 + 0x10]
mov esi, edx
jmp 0x44db59
mov esi, dword [edi + 0x14]
xor edi, edi
mov edx, ebp
mov ecx, dword [ebx + 0x12c]
test ecx, ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x20], esi
jle 0x44df9e
mov ebp, ebx
mov dword [esp + 4], 0
xor eax, eax
mov dword [esp + 0x10], edi
mov edx, eax
test edi, edi
je 0x44db8a
mov edx, dword [edi + eax*4]
mov dword [esp + 0x14], edx
mov dword [esp + 8], eax
mov eax, dword [esp + 4]
mov edx, dword [esi + eax + 4]
mov eax, edx
and eax, 0xfffc0000
or eax, 0x20500
mov ebx, ebp
cmp byte [ebp + 0x10a5], 0
cmovne eax, edx
cmp byte [ebp + 0x10ff], 0
je 0x44dbbf
mov edx, ebp
jmp 0x44dc05
mov edx, eax
mov ebp, 0x1ff
and edx, ebp
add edx, 0xfffffff0
mov esi, eax
and esi, 0xfffffe00
or esi, 0x100
mov edi, 0xf0
cmp edx, edi
cmovae esi, eax
mov edx, esi
shr edx, 9
and edx, ebp
add edx, 0xfffffff0
mov eax, esi
and eax, 0xfffc01ff
or eax, 0x20400
cmp edx, edi
cmovae eax, esi
mov esi, dword [esp + 0x20]
mov edx, dword [esp]
mov ebp, dword [esp + 4]
mov ebx, edx
cmp byte [edx + 0x1100], 0
je 0x44dc22
movsd xmm0, qword [esi + ebp + 8]
movsd qword [esp + 0x7c], xmm0
jmp 0x44dc2f
xor edx, edx
mov dword [esp + 0x80], edx
mov dword [esp + 0x7c], edx
mov edx, dword [esi + ebp]
mov edi, edx
and edx, 0xffffff00
cmp edx, 0xda00
je 0x44dc7e
cmp edx, 0xd900
je 0x44dc68
cmp edx, 0xd800
jne 0x44dc99
mov edx, dword [ebx + 0x1064]
mov ebx, edi
movzx esi, bl
lea edx, [edx + esi*2]
add edx, 0x210
jmp 0x44dc8f
mov edx, dword [ebx + 0x1064]
mov ebx, edi
movzx esi, bl
lea edx, [edx + esi*2]
add edx, 0x610
jmp 0x44dc8f
mov edx, dword [ebx + 0x1064]
mov ebx, edi
movzx esi, bl
lea edx, [edx + esi*2]
add edx, 0x10
mov esi, dword [esp + 0x20]
mov ebx, dword [esp]
movzx edi, word [edx]
dec ecx
cmp dword [esp + 8], ecx
jge 0x44dcb3
mov ecx, eax
or ecx, 0x400000
cmp dword [esi + ebp + 0x14], 0xdfff
cmove eax, ecx
mov ecx, dword [ebx + 0xe20]
and ecx, 0xfffffffe
cmp ecx, 2
jne 0x44dd78
cmp dword [ebx + 0xe24], 0
mov ecx, ebx
mov esi, dword [ebx + 0xe2c]
mov edx, dword [ebx + 0xe30]
je 0x44dd1f
cmp esi, dword [esp + 0x18]
mov ecx, dword [esp]
jg 0x44dd78
cmp edx, dword [esp + 0x14]
jg 0x44dd78
mov edx, ecx
mov esi, eax
xor esi, dword [esp + 0x50]
xor ecx, ecx
mov ebx, dword [esp + 0x18]
cmp ebx, dword [edx + 0xe34]
jg 0x44dd80
mov ebx, dword [esp + 0x14]
cmp ebx, dword [edx + 0xe38]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
jl 0x44dd71
jmp 0x44dd88
xor ecx, ecx
cmp edx, dword [esp + 0x14]
setle cl
xor edx, edx
cmp esi, dword [esp + 0x18]
setl dl
cmove edx, ecx
cmp dl, 1
mov esi, dword [esp]
jne 0x44dd78
xor ecx, ecx
mov edx, dword [esp + 0x14]
cmp edx, dword [esi + 0xe38]
setl cl
xor edx, edx
mov ebx, dword [esp + 0x18]
cmp ebx, dword [esi + 0xe34]
setl dl
cmove edx, ecx
mov esi, eax
xor esi, dword [esp + 0x50]
xor ecx, ecx
test dl, dl
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
je 0x44dd88
mov ecx, 0x100000
jmp 0x44dd88
mov esi, eax
xor esi, dword [esp + 0x50]
xor ecx, ecx
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x30]
xor esi, ecx
bt eax, 0x15
jae 0x44ddc4
mov eax, dword [esp]
cmp byte [eax + 0xc9], 0
je 0x44ddc4
cmp byte [eax + 0x134], 0
je 0x44ddbe
cmp byte [eax + 0xc8], 0
je 0x44ddbe
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx edi, word [eax + 0x250]
and esi, 0xffdfffff
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
mov ecx, edi
cmp edi, dword [eax + ebp]
jne 0x44ddf0
mov eax, dword [eax + ebp + 4]
mov ecx, eax
and ecx, 0xf7fffff
cmp esi, ecx
jne 0x44ddf0
and eax, 0x800000
or esi, eax
jmp 0x44de1b
bt esi, 0x16
jb 0x44de1b
mov eax, dword [esp]
mov eax, dword [eax + 0x105c]
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x10]
mov edx, dword [esp + 0x14]
add esp, 8
mov ecx, esi
or ecx, 0x800000
cmp eax, 2
cmove esi, ecx
mov eax, dword [esp + 0x1c]
cmp edx, ebx
jne 0x44de3f
cmp eax, dword [esp + 8]
jne 0x44de3f
mov ecx, eax
mov eax, dword [esp + 0x4c]
or esi, eax
mov edx, dword [esp]
mov dword [edx + 0x24], eax
mov dword [edx + 0x1c], ecx
mov dword [edx + 0x20], ebx
jmp 0x44de42
mov edx, dword [esp]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 4]
mov dword [ebp + ebx + 4], esi
mov dword [ebp + ebx], edi
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov dword [ebp + ebx + 0xc], ecx
mov dword [ebp + ebx + 8], eax
mov dword [ebp + ebx + 0x10], 0
mov eax, dword [esp + 8]
inc eax
mov ecx, dword [edx + 0x12c]
add ebx, 0x14
mov dword [esp + 4], ebx
cmp eax, ecx
mov ebp, edx
mov edx, dword [esp + 0xc]
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
jl 0x44db81
test ecx, ecx
mov ebx, ebp
jle 0x44df9e
xor eax, eax
mov dword [esp + 4], 0
xor edi, edi
mov dword [esp + 0x14], ecx
mov esi, dword [ebx + 0x18]
mov esi, dword [esi + edx*4]
mov ecx, dword [esi + 0x14]
lea ebp, [eax*4]
lea edx, [ebp + ebp*4]
mov ebx, dword [ecx + edx]
mov dword [esp + 8], ecx
mov ebp, dword [ecx + edx + 4]
test ebp, ebp
cmovs edi, eax
mov ecx, dword [esp + 4]
movzx ecx, cl
mov esi, 0
cmovs ecx, esi
mov esi, dword [esp + 0x28]
cmp ebx, dword [esi + edx]
jne 0x44df0f
mov edx, ebp
and edx, 0xfffffff
lea ebx, [eax + eax*4]
cmp edx, dword [esi + ebx*4 + 4]
jne 0x44df0f
mov dword [esp + 4], ecx
test cl, 1
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 8]
jne 0x44df78
jmp 0x44df8e
test cl, 1
jne 0x44df70
cmp edi, eax
jge 0x44df6e
mov ecx, edi
mov dl, 1
mov dword [esp + 4], edx
lea edx, [edi + edi*4]
mov esi, dword [esp + 8]
or dword [esi + edx*4 + 4], 0x3ffff
lea ecx, [edi + 1]
cmp ecx, eax
mov ebx, dword [esp]
mov ebp, dword [esp + 0xc]
je 0x44df5c
lea esi, [edx*4 + 0x18]
mov edx, dword [ebx + 0x18]
mov edx, dword [edx + ebp*4]
mov edx, dword [edx + 0x14]
or dword [edx + esi], 0x3ffff
inc ecx
add esi, 0x14
cmp eax, ecx
jne 0x44df44
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + ebp*4]
mov edx, dword [ecx + 0x14]
lea ecx, [eax + eax*4]
mov ebp, dword [edx + ecx*4 + 4]
jmp 0x44df78
mov cl, 1
mov dword [esp + 4], ecx
mov edx, dword [esp + 8]
lea ecx, [eax + eax*4]
or ebp, 0x3ffff
mov dword [edx + ecx*4 + 4], ebp
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x12c]
inc eax
cmp eax, ecx
mov ebx, dword [esp]
mov edx, dword [esp + 0xc]
jl 0x44deab
mov eax, dword [esp + 0x40]
movzx eax, word [eax]
mov ecx, dword [ebx + 0x18]
mov ecx, dword [ecx + edx*4]
cmp ax, word [ecx]
setne dl
mov word [ecx], ax
mov eax, dword [ebx + 0x74]
mov ecx, dword [ebx + 0x78]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], eax
cmp dword [ebx + 0x12c], 0
jle 0x44e62f
mov esi, ebx
mov edi, edx
mov edx, ecx
shr edx, 0x18
mov dword [esp + 0x64], edx
mov edx, ecx
shr edx, 0x10
mov dword [esp + 0x68], edx
mov edx, eax
shr edx, 0x18
mov dword [esp + 0x6c], edx
mov dword [esp + 0x58], eax
shr eax, 0x10
mov dword [esp + 0x70], eax
xor ebx, ebx
mov dword [esp + 0x54], 0
xor edx, edx
mov dword [esp + 0x44], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x3c], 0
mov eax, edi
mov dword [esp + 0x24], edi
mov dword [esp + 0x60], eax
mov dword [esp + 4], ebx
mov dword [esp + 0x10], edx
mov dword [esp + 8], ecx
lea eax, [ebx*4]
lea ebp, [eax + eax*4]
mov edi, dword [esp + 0x28]
mov ebx, esi
mov esi, dword [edi + ebp + 4]
mov eax, dword [ebx + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x5c], eax
mov edx, dword [eax + ebp + 4]
mov dword [esp + 0x38], edx
xor edx, esi
bt edx, 0x16
mov edx, dword [esp + 0x60]
movzx edx, dl
mov eax, 1
cmovb edx, eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x34], esi
xor esi, dword [esp + 0x3c]
test dword [ebx + 0x1044], esi
mov ecx, dword [esp + 4]
setne dl
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
cmp byte [edi + ebp + 8], al
mov ebp, edi
jne 0x44e0e6
lea esi, [ecx + ecx*4]
cmp byte [ebp + esi*4 + 9], ah
jne 0x44e0e6
mov eax, dword [esp + 0x70]
cmp byte [ebp + esi*4 + 0xa], al
jne 0x44e0e6
mov eax, dword [esp + 0x6c]
cmp byte [ebp + esi*4 + 0xb], al
jne 0x44e0e6
mov eax, dword [esp + 8]
cmp byte [ebp + esi*4 + 0xc], al
jne 0x44e0e6
mov eax, dword [esp + 8]
cmp byte [ebp + esi*4 + 0xd], ah
jne 0x44e0e6
mov eax, dword [esp + 0x68]
cmp byte [ebp + esi*4 + 0xe], al
jne 0x44e0e6
mov eax, dword [esp + 0x64]
cmp byte [ebp + esi*4 + 0xf], al
je 0x44e0e8
mov dl, 1
mov eax, dword [esp + 0x14]
mov edi, dword [ebp + eax]
lea esi, [edi - 0x23ba]
cmp esi, 4
jb 0x44e112
test ecx, ecx
jle 0x44e114
lea esi, [ecx + ecx*4]
mov esi, dword [ebp + esi*4 - 0x14]
mov eax, 0xffffdc46
add esi, eax
cmp esi, 3
ja 0x44e114
mov dl, 1
mov esi, edi
and esi, 0xfffffc00
mov ebx, edi
and ebx, 0xfffffe00
mov eax, edi
and eax, 0xffffff00
cmp ebx, 0xdc00
mov ebx, dword [esp + 4]
mov ebp, 0
cmove ebp, eax
cmp esi, 0xd800
cmove ebp, eax
cmp ebp, dword [esp + 0x74]
movzx edx, dl
mov eax, 1
cmovne edx, eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
lea esi, [ecx + eax]
lea eax, [ebx + ebx*4]
mov dword [esp + 0x48], eax
cmp dword [ecx + eax*4 + 0x10], 0
je 0x44e1cb
mov dl, 1
cmp dword [esi], 0xdffe
jne 0x44e17c
mov dl, 1
jmp 0x44e193
cmp ebx, 2
jl 0x44e193
cmp dword [esi - 0x14], 0xdfff
jne 0x44e193
cmp dword [esi - 0x28], 0xdffe
je 0x44e178
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
mov bl, byte [eax + 4]
mov eax, dword [esp + 0x60]
mov bh, al
and bh, 1
mov eax, ebx
or al, bh
mov dword [esp + 0x18], esi
je 0x44e1d7
test dl, dl
jne 0x44e207
mov eax, dword [esp + 0x24]
mov byte [esp + 0x38], al
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x34]
jmp 0x44e2f2
test ebx, ebx
jle 0x44e170
cmp dword [esi - 4], 0
jne 0x44e16e
jmp 0x44e170
mov eax, dword [esp + 0x38]
and eax, 0xfffffff
cmp eax, dword [esp + 0x34]
jne 0x44e1f3
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
cmp dword [ecx + eax*4], edi
je 0x44e207
test byte [esp + 0x24], 1
sete al
cmp dword [esp + 0x10], 1
sete cl
test al, cl
je 0x44e1b2
mov byte [esp + 0x38], bh
mov ecx, dword [esp + 0x24]
mov bh, cl
and bh, 1
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x44e286
or cl, byte [esp + 0x54]
and cl, 1
je 0x44e286
sub esp, 0x1c
movsd xmm0, qword [esp + 0x98]
movsd qword [esp + 0x14], xmm0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, dword [esp + 0x5c]
call fcn.00457c38
add esp, 0x1c
mov eax, dword [esi + 0x1064]
mov bl, byte [eax + 4]
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
add eax, ecx
add eax, 8
mov edx, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x80], esi
mov dword [esp + 0x7c], edx
test bl, bl
movzx eax, byte [esp + 0x54]
movzx ecx, bh
cmove ecx, eax
mov dword [esp + 0x54], ecx
mov eax, esi
shr eax, 0x10
mov dword [esp + 0x68], eax
mov eax, edx
shr eax, 0x10
mov dword [esp + 0x70], eax
mov dword [esp + 8], esi
shr esi, 0x18
mov dword [esp + 0x64], esi
mov dword [esp + 0x58], edx
shr edx, 0x18
mov dword [esp + 0x6c], edx
xor esi, esi
mov ebx, dword [esp + 0x34]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x74], ebp
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x5c]
lea ecx, [ecx + eax*4]
mov edx, dword [esp + 0x18]
push ebx
push edi
call fcn.00457e15
add esp, 8
movzx ecx, byte [esp + 0x38]
mov byte [esp + 0x10], al
test al, al
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x24], ecx
push 0
mov eax, 2
push eax
push esi
push eax
lea eax, [esp + 0x94]
push eax
push dword [esp + 0x40]
call fcn.00411651
add esp, 0x18
lea ecx, [edi - 0x10001]
cmp ecx, 0xffffe
mov dword [esp + 0x78], edi
ja 0x44e37d
mov edx, edi
add edi, 0x3ff0000
shr edi, 0xa
add edi, 0xffffd800
lea ecx, [esi + 1]
and edx, 0x3ff
or edx, 0xdc00
mov word [eax + esi*2 + 2], dx
jmp 0x44e37f
mov ecx, esi
mov edx, dword [esp + 0x48]
lea edx, [edx*4 + 0x10]
add edx, ebp
mov dword [esp + 0x2c], eax
mov word [eax + esi*2], di
inc ecx
mov edi, ecx
mov eax, dword [edx]
test eax, eax
je 0x44e48f
mov esi, dword [esp + 0x18]
mov edx, edi
lea ebp, [eax + eax*4]
mov ebx, dword [esi + ebp*4]
mov eax, ebx
and eax, 0xffffff00
cmp eax, 0xda00
je 0x44e3f5
cmp eax, 0xd900
je 0x44e3df
cmp eax, 0xd800
jne 0x44e40a
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x210
jmp 0x44e407
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x610
jmp 0x44e407
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x10
movzx ebx, word [eax]
push 0
mov eax, 2
push eax
push edx
push eax
lea eax, [esp + 0x94]
push eax
push dword [esp + 0x40]
mov edi, edx
call fcn.00411651
add esp, 0x18
lea ecx, [ebx - 0x10001]
cmp ecx, 0xffffe
ja 0x44e45d
lea edx, [ebx + 0x3ff0000]
shr edx, 0xa
add edx, 0xffffd800
lea ecx, [edi + 1]
and ebx, 0x3ff
or ebx, 0xdc00
mov word [eax + edi*2 + 2], bx
jmp 0x44e461
mov edx, ebx
mov ecx, edi
lea esi, [esi + ebp*4]
mov dword [esp + 0x2c], eax
mov word [eax + edi*2], dx
mov edx, ecx
inc edx
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x44e3a7
or dword [esp + 0x3c], 0x80000000
mov esi, dword [esp]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
jmp 0x44e49c
mov eax, dword [esp + 0x1c]
mov esi, dword [esp]
mov ecx, dword [esp + 8]
mov edx, edi
mov edi, dword [esp + 0x34]
cmp byte [esp + 0x10], 0
jne 0x44e530
mov dword [esp + 0x10], edx
mov eax, dword [esi + 0x18]
mov ebx, dword [esp + 0xc]
mov dword [esp + 8], ecx
mov ecx, dword [eax + ebx*4]
mov ebp, dword [esp + 4]
mov edx, ebp
push dword [esp + 0x18]
call fcn.00456cac
add esp, 4
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x78]
mov dword [eax + edx], ecx
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + edx + 4], edi
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 8]
mov dword [eax + edx + 0xc], ecx
mov ecx, dword [esp + 0x58]
mov dword [eax + edx + 8], ecx
cmp dword [esp + 0x44], ebp
jne 0x44e524
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x48]
or dword [eax + ecx*4 + 4], 0x80000000
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
bt edi, 0x16
jb 0x44e53f
mov ebx, dword [esp + 4]
jmp 0x44e5ca
mov ebx, dword [esp + 4]
inc ebx
cmp ebx, dword [esi + 0x12c]
jge 0x44e5ca
mov dword [esp + 0x10], edx
add dword [esp + 0x18], 0x14
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x30]
jne 0x44e57a
cmp ebx, eax
jne 0x44e57a
push 0x17cb
push str..._terminal.c
push str.__i__our_curs_y__j__our_curs_x_
call fcn.00481fcd
add esp, 0xc
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0xc]
mov ebp, dword [eax + ecx*4]
lea ecx, [ebx + ebx*4]
shl ecx, 2
add ecx, dword [ebp + 0x14]
mov edi, dword [esp + 0x18]
mov edx, edi
push dword [edi + 4]
push dword [edi]
call fcn.00457e15
add esp, 8
mov ecx, dword [esp + 0x24]
movzx ecx, cl
test al, al
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, ebp
mov edx, ebx
push edi
call fcn.00456cac
add esp, 4
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x10]
inc ebx
cmp ebx, dword [esi + 0x12c]
jl 0x44e02a
test byte [esp + 0x24], 1
mov esi, dword [esp + 0x40]
je 0x44e629
test edx, edx
jle 0x44e629
sub esp, 0x1c
movsd xmm0, qword [esp + 0x98]
movsd qword [esp + 0x14], xmm0
mov eax, dword [esp + 0x58]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov ecx, dword [esp + 0x1c]
mov edx, esi
call fcn.00457c38
add esp, 0x1c
mov edi, dword [esp + 0x28]
jmp 0x44e637
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
cmp byte [esi + 0xc], 0
je 0x44e651
push dword [esi + 0x14]
call fcn.00411645
add esp, 4
push esi
call fcn.00411645
add esp, 4
mov esi, dword [esp + 0xc]
inc esi
mov ebx, dword [esp]
cmp esi, dword [ebx + 0x128]
jl 0x44db08
push edi
call fcn.00411645
add esp, 4
push dword [esp + 0x2c]
call fcn.00411645
add esp, 4
mov ecx, dword [esp + 0x88]
xor ecx, esp
call fcn.00475526
add esp, 0x8c
pop esi
pop edi
pop ebx
pop ebp
ret