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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x90
mov ebp, ecx
mov eax, dword [0x4c1074]
xor eax, esp
mov dword [esp + 0x8c], eax
mov eax, 0x400
mov dword [esp + 0x88], eax
xor esi, esi
push esi
push 2
push eax
call fcn.004116c4
add esp, 0xc
mov dword [esp + 0x2c], eax
mov dword [esp + 0x50], 0
push esi
push 0x14
push dword [ebp + 0x12c]
call fcn.004116c4
add esp, 0xc
mov cl, byte [ebp + 0xbe]
cmp cl, byte [ebp + 0x135]
mov dword [esp + 0x10], eax
setne byte [esp]
cmp byte [ebp + 0xc4], 0
je 0x44d6e7
cmp byte [ebp + 0x134], 0
je 0x44d6cc
mov eax, 0x40000000
cmp byte [ebp + 0xc7], 0
jne 0x44d6d1
xor eax, eax
cmp byte [ebp + 0x10ca], 0
sete al
shl eax, 0x1e
jmp 0x44d6d1
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [ebp + 0xae], 0
cmove ecx, eax
mov dword [esp + 0x50], ecx
mov edx, dword [ebp + 0x94]
mov ebx, edx
sub ebx, dword [ebp + 0x10]
mov ecx, ebp
push 0
push 0x16a0
call fcn.0044f60a
add esp, 8
mov esi, eax
mov edi, dword [ebp + 0x98]
mov ecx, ebp
mov edx, eax
push ebx
call fcn.00451e50
add esp, 4
test eax, eax
mov dword [esp + 0x20], ebx
je 0x44d732
mov ecx, dword [ebp + 0x109c]
lea edx, [ebx + ebx*4]
mov ecx, dword [ecx + edx*4 + 0xc]
mov edi, dword [ecx + edi*4]
jmp 0x44d735
mov eax, dword [esi + 0x14]
test edi, edi
jle 0x44d74a
lea ecx, [edi + edi*4]
xor edx, edx
cmp dword [eax + ecx*4], 0xdfff
sete dl
sub edi, edx
mov dword [esp + 0x40], edi
cmp byte [esi + 0xc], 0
je 0x44d768
push dword [esi + 0x14]
call fcn.00411739
add esp, 4
push esi
call fcn.00411739
add esp, 4
mov ecx, dword [ebp + 0x20]
test ecx, ecx
js 0x44d7d6
mov eax, dword [ebp + 0x1c]
mov edx, dword [esp + 0x50]
cmp dword [ebp + 0x24], edx
jne 0x44d787
cmp ecx, dword [esp + 0x20]
jne 0x44d787
cmp eax, dword [esp + 0x40]
je 0x44d7d6
mov edx, dword [ebp + 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 0x44d7ac
cmp dword [esi], 0xdfff
jne 0x44d7ac
or dword [esi - 0x10], 0x3ffff
mov eax, dword [ebp + 0x1c]
mov ebx, dword [ebp + 0x12c]
dec ebx
cmp eax, ebx
jge 0x44d7c7
cmp dword [esi + 0x14], 0xdfff
jne 0x44d7c7
or dword [esi + 0x18], 0x3ffff
or dword [ecx + edx*4 + 4], 0x3ffff
mov dword [ebp + 0x24], 0
xor eax, eax
dec eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x1c], eax
cmp dword [ebp + 0x128], 0
jle 0x44e3b6
xor eax, eax
mov cl, byte [esp]
mov al, cl
shl eax, 0x14
mov dword [esp + 0x54], eax
xor ebx, ebx
mov dword [esp], ebp
mov edx, dword [ebp + 0x10]
add edx, ebx
mov ecx, ebp
mov dword [esp + 0x1c], edx
push 0
push 0x16d6
call fcn.0044f60a
add esp, 8
mov edi, eax
mov ecx, ebp
mov edx, eax
push ebx
call fcn.00451e50
add esp, 4
test eax, eax
mov esi, ebx
mov dword [esp + 0x3c], edi
je 0x44d845
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0x109c]
lea ecx, [esi + esi*4]
mov edi, dword [eax + ecx*4 + 0x10]
jmp 0x44d84e
mov eax, dword [edi + 0x14]
mov dword [esp + 0x34], eax
xor edi, edi
mov eax, dword [ebp + 0x12c]
test eax, eax
mov dword [esp + 0x14], esi
jle 0x44dc7f
xor ebx, ebx
xor ebp, ebp
mov dword [esp + 0x30], edi
mov dword [esp + 4], eax
mov eax, ebp
test edi, edi
je 0x44d875
mov eax, dword [edi + ebp*4]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + ebx + 4]
mov ecx, edx
and ecx, 0xfffc0000
or ecx, 0x20500
mov esi, dword [esp]
cmp byte [esi + 0x10a5], 0
cmovne ecx, edx
cmp byte [esi + 0x10ff], 0
jne 0x44d8ea
mov edx, ecx
mov eax, 0x1ff
and edx, eax
add edx, 0xfffffff0
mov esi, ecx
and esi, 0xfffffe00
or esi, 0x100
mov edi, 0xf0
cmp edx, edi
cmovae esi, ecx
mov edx, esi
shr edx, 9
and edx, eax
mov eax, dword [esp + 0x34]
add edx, 0xfffffff0
mov ecx, esi
and ecx, 0xfffc01ff
or ecx, 0x20400
cmp edx, edi
cmovae ecx, esi
mov edx, dword [esp]
cmp byte [edx + 0x1100], 0
je 0x44d907
movsd xmm0, qword [eax + ebx + 8]
movsd qword [esp + 0x80], xmm0
jmp 0x44d91b
xor eax, eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x34]
mov edx, dword [eax + ebx]
mov dword [esp + 8], edx
and edx, 0xffffff00
cmp edx, 0xda00
je 0x44d972
cmp edx, 0xd900
je 0x44d959
cmp edx, 0xd800
jne 0x44d98d
mov edx, dword [esp]
mov edx, dword [edx + 0x1064]
movzx esi, byte [esp + 8]
lea edx, [edx + esi*2]
add edx, 0x210
jmp 0x44d986
mov edx, dword [esp]
mov edx, dword [edx + 0x1064]
movzx esi, byte [esp + 8]
lea edx, [edx + esi*2]
add edx, 0x610
jmp 0x44d986
mov edx, dword [esp]
mov edx, dword [edx + 0x1064]
movzx esi, byte [esp + 8]
lea edx, [edx + esi*2]
add edx, 0x10
movzx edx, word [edx]
mov dword [esp + 8], edx
mov edx, dword [esp + 4]
dec edx
cmp ebp, edx
jge 0x44d9aa
mov edx, eax
mov eax, ecx
or eax, 0x400000
cmp dword [edx + ebx + 0x14], 0xdfff
cmove ecx, eax
mov eax, dword [esp]
mov eax, dword [eax + 0xe20]
and eax, 0xfffffffe
cmp eax, 2
jne 0x44da5c
mov eax, dword [esp]
cmp dword [eax + 0xe24], 0
mov esi, dword [eax + 0xe2c]
mov edx, dword [eax + 0xe30]
je 0x44da0b
cmp esi, dword [esp + 0x1c]
jg 0x44da5c
cmp edx, dword [esp + 0xc]
jg 0x44da5c
mov esi, ecx
xor esi, dword [esp + 0x54]
xor eax, eax
mov edx, dword [esp + 0x1c]
mov edi, dword [esp]
cmp edx, dword [edi + 0xe34]
jg 0x44da64
mov edx, dword [esp + 0xc]
mov edi, dword [esp]
cmp edx, dword [edi + 0xe38]
jl 0x44da55
jmp 0x44da64
xor eax, eax
cmp edx, dword [esp + 0xc]
setle al
xor edx, edx
cmp esi, dword [esp + 0x1c]
setl dl
cmove edx, eax
cmp dl, 1
jne 0x44da5c
xor eax, eax
mov edi, dword [esp]
mov edx, dword [esp + 0xc]
cmp edx, dword [edi + 0xe38]
setl al
xor edx, edx
mov esi, dword [esp + 0x1c]
cmp esi, dword [edi + 0xe34]
setl dl
cmove edx, eax
mov esi, ecx
xor esi, dword [esp + 0x54]
xor eax, eax
test dl, dl
je 0x44da64
mov eax, 0x100000
jmp 0x44da64
mov esi, ecx
xor esi, dword [esp + 0x54]
xor eax, eax
xor esi, eax
mov eax, dword [esp]
cmp byte [eax + 0xc9], 0
je 0x44daa9
and ecx, 0x200000
je 0x44daa9
mov eax, dword [esp]
cmp byte [eax + 0x134], 0
je 0x44daa3
cmp byte [eax + 0xc8], 0
je 0x44daa3
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx eax, word [eax + 0x250]
mov dword [esp + 8], eax
and esi, 0xffdfffff
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 8]
cmp ecx, dword [eax + ebx]
jne 0x44dadb
mov eax, dword [eax + ebx + 4]
mov ecx, eax
and ecx, 0xf7fffff
cmp esi, ecx
jne 0x44dadb
and eax, 0x800000
or esi, eax
jmp 0x44db05
bt esi, 0x16
jb 0x44db05
mov eax, dword [esp]
mov eax, dword [eax + 0x105c]
mov ecx, dword [eax]
push dword [esp + 8]
push eax
call dword [ecx + 0x10]
add esp, 8
mov ecx, esi
or ecx, 0x800000
cmp eax, 2
cmove esi, ecx
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x14], eax
jne 0x44db31
mov eax, dword [esp + 0x40]
cmp eax, ebp
jne 0x44db31
mov ecx, eax
mov eax, dword [esp + 0x50]
or esi, eax
mov edx, dword [esp]
mov dword [edx + 0x24], eax
mov dword [edx + 0x1c], ecx
mov eax, dword [esp + 0x20]
mov dword [edx + 0x20], eax
jmp 0x44db34
mov edx, dword [esp]
mov eax, dword [esp + 0x10]
mov dword [eax + ebx + 4], esi
mov esi, eax
mov eax, dword [esp + 8]
mov dword [esi + ebx], eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x84]
mov dword [esi + ebx + 0xc], ecx
mov dword [esi + ebx + 8], eax
mov dword [esi + ebx + 0x10], 0
inc ebp
mov eax, dword [edx + 0x12c]
add ebx, 0x14
cmp ebp, eax
mov edi, dword [esp + 0x30]
jl 0x44d868
test eax, eax
mov ebp, dword [esp]
mov esi, dword [esp + 0x14]
jle 0x44dc7f
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov edx, dword [ebp + 0x18]
mov edx, dword [edx + esi*4]
mov esi, dword [edx + 0x14]
lea edx, [ecx*4]
lea edx, [edx + edx*4]
mov ebp, dword [esi + edx]
mov edi, dword [esi + edx + 4]
test edi, edi
mov eax, dword [esp + 8]
cmovs eax, ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
movzx ebx, bl
mov eax, 0
cmovs ebx, eax
mov eax, dword [esp + 0x10]
cmp ebp, dword [eax + edx]
jne 0x44dc00
mov dword [esp + 0xc], edi
mov edx, edi
and edx, 0xfffffff
lea ebp, [ecx + ecx*4]
mov edi, ebx
and bl, 1
cmp edx, dword [eax + ebp*4 + 4]
je 0x44dc4c
test bl, bl
mov ebp, dword [esp]
mov edx, edi
mov edi, dword [esp + 0xc]
je 0x44dc0c
jmp 0x44dc55
mov edx, dword [esp + 0xc]
test bl, 1
mov ebp, dword [esp]
jne 0x44dc45
mov edx, dword [esp + 8]
cmp edx, ecx
jge 0x44dc41
lea eax, [edx + edx*4]
lea eax, [eax*4 + 4]
mov ebx, dword [esp + 0x14]
or dword [esi + eax], 0x3ffff
inc edx
mov esi, dword [ebp + 0x18]
mov esi, dword [esi + ebx*4]
mov esi, dword [esi + 0x14]
add eax, 0x14
cmp ecx, edx
jne 0x44dc22
lea eax, [ecx + ecx*4]
mov edi, dword [esi + eax*4 + 4]
mov dl, 1
jmp 0x44dc5d
mov ebx, edx
and bl, 1
jmp 0x44dc55
mov ebp, dword [esp]
mov edx, edi
mov edi, dword [esp + 0xc]
test bl, bl
mov eax, dword [esp + 4]
je 0x44dc70
lea eax, [ecx + ecx*4]
or edi, 0x3ffff
mov dword [esi + eax*4 + 4], edi
mov eax, dword [ebp + 0x12c]
inc ecx
mov ebx, edx
cmp ecx, eax
mov esi, dword [esp + 0x14]
jl 0x44db94
mov eax, dword [esp + 0x3c]
movzx eax, word [eax]
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + esi*4]
cmp ax, word [ecx]
setne dl
mov word [ecx], ax
mov eax, dword [ebp + 0x74]
mov ecx, dword [ebp + 0x78]
mov dword [esp + 0x84], ecx
mov dword [esp + 0x80], eax
cmp dword [ebp + 0x12c], 0
jle 0x44e387
mov esi, edx
mov edx, ecx
shr edx, 0x18
mov dword [esp + 0x58], edx
mov dword [esp + 0x44], ecx
shr ecx, 0x10
mov dword [esp + 0x5c], ecx
mov ecx, eax
shr ecx, 0x18
mov dword [esp + 0x60], ecx
mov dword [esp + 0x24], eax
shr eax, 0x10
mov dword [esp + 0x64], eax
xor ebx, ebx
mov dword [esp + 0x68], 0
xor edi, edi
mov dword [esp + 0x48], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x38], 0
mov eax, esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x74], eax
mov dword [esp + 4], edi
lea eax, [ebx*4]
lea esi, [eax + eax*4]
mov edx, dword [esp + 0x10]
mov edi, dword [edx + esi + 4]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x14]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x6c], eax
mov eax, dword [eax + esi + 4]
mov dword [esp + 0x7c], eax
xor eax, edi
bt eax, 0x16
mov ecx, dword [esp + 0x74]
movzx ecx, cl
mov eax, 1
cmovb ecx, eax
mov dword [esp + 0x74], ecx
mov eax, edi
xor eax, dword [esp + 0x38]
test dword [ebp + 0x1044], eax
setne al
mov ecx, dword [esp + 0x24]
mov dword [esp + 8], esi
cmp byte [edx + esi + 8], cl
jne 0x44ddd4
lea ebp, [ebx + ebx*4]
mov esi, dword [esp + 0x10]
cmp byte [esi + ebp*4 + 9], ch
jne 0x44ddd4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x64]
cmp byte [ecx + ebp*4 + 0xa], dl
jne 0x44ddd4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x60]
cmp byte [ecx + ebp*4 + 0xb], dl
jne 0x44ddd4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
cmp byte [ecx + ebp*4 + 0xc], dl
jne 0x44ddd4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x44]
cmp byte [ecx + ebp*4 + 0xd], dh
jne 0x44ddd4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x5c]
cmp byte [ecx + ebp*4 + 0xe], dl
jne 0x44ddd4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x58]
cmp byte [ecx + ebp*4 + 0xf], dl
je 0x44ddd6
mov al, 1
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebp, dword [ecx + edx]
lea edx, [ebp - 0x23ba]
cmp edx, 4
jb 0x44de07
test ebx, ebx
jle 0x44de09
lea edx, [ebx + ebx*4]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + edx*4 - 0x14]
mov esi, 0xffffdc46
add edx, esi
cmp edx, 3
ja 0x44de09
mov al, 1
mov edx, ebp
and edx, 0xfffffc00
mov dword [esp + 0xc], ebx
mov ebx, ebp
and ebx, 0xfffffe00
mov dword [esp + 0x70], ebp
mov esi, ebp
and esi, 0xffffff00
cmp ebx, 0xdc00
mov ebx, dword [esp + 0xc]
mov ebp, 0
cmove ebp, esi
cmp edx, 0xd800
cmove ebp, esi
cmp ebp, dword [esp + 0x78]
movzx eax, al
mov edx, 1
cmovne eax, edx
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 8]
lea esi, [edx + ecx]
lea ecx, [ebx + ebx*4]
mov dword [esp + 0x30], ecx
cmp dword [edx + ecx*4 + 0x10], 0
je 0x44df24
mov al, 1
cmp dword [esi], 0xdffe
jne 0x44de7e
mov al, 1
jmp 0x44de95
cmp ebx, 2
jl 0x44de95
cmp dword [esi - 0x14], 0xdfff
jne 0x44de95
cmp dword [esi - 0x28], 0xdffe
je 0x44de7a
mov edx, dword [esp]
mov edx, dword [edx + 0x1064]
mov dh, byte [edx + 4]
mov ecx, dword [esp + 0x74]
and cl, 1
mov byte [esp + 0x1a], dh
mov byte [esp + 0x1b], cl
or dh, cl
mov dword [esp + 0x1c], esi
jne 0x44df00
mov ecx, dword [esp + 0x70]
mov esi, ebx
mov ebx, dword [esp + 0x30]
mov edx, ebp
mov ebp, edi
mov edi, dword [esp + 0x6c]
cmp dword [edi + ebx*4], ecx
mov ebx, esi
mov edi, ebp
mov ebp, edx
jne 0x44dee3
mov ecx, dword [esp + 0x7c]
and ecx, 0xfffffff
cmp ecx, edi
je 0x44df08
test byte [esp + 0x28], 1
jne 0x44df00
cmp dword [esp + 4], 1
jne 0x44df00
mov al, 1
mov dword [esp + 0x24], eax
test byte [esp + 0x28], 1
je 0x44df0f
jmp 0x44df48
test al, al
je 0x44e021
test byte [esp + 0x28], 1
jne 0x44df3b
test byte [esp + 0x68], 1
je 0x44e328
mov dword [esp + 0x24], 0
jmp 0x44df41
test ebx, ebx
jle 0x44de72
cmp dword [esi - 4], 0
jne 0x44de70
jmp 0x44de72
mov al, 1
mov dword [esp + 0x24], eax
cmp dword [esp + 4], 0
jle 0x44dfb1
sub esp, 0x1c
movsd xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x14], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x30]
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov edx, dword [esp + 0x58]
call fcn.00457ddc
add esp, 0x1c
mov eax, dword [esi + 0x1064]
mov al, byte [eax + 4]
mov byte [esp + 0x1a], al
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
mov ebx, dword [esp + 0xc]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
add eax, ecx
add eax, 8
mov esi, dword [eax]
mov edx, ebx
mov ebx, dword [eax + 4]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], esi
cmp byte [esp + 0x1a], 0
movzx eax, byte [esp + 0x68]
movzx ecx, byte [esp + 0x24]
cmove ecx, eax
mov dword [esp + 0x68], ecx
mov eax, ebx
shr eax, 0x10
mov dword [esp + 0x5c], eax
mov eax, esi
shr eax, 0x10
mov dword [esp + 0x64], eax
mov dword [esp + 0x44], ebx
shr ebx, 0x18
mov dword [esp + 0x58], ebx
mov dword [esp + 0x24], esi
shr esi, 0x18
mov dword [esp + 0x60], esi
xor esi, esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x48], edx
mov dword [esp + 0x78], ebp
jmp 0x44e02d
mov eax, dword [esp + 0x28]
mov byte [esp + 0x1b], al
mov esi, dword [esp + 4]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x6c]
lea ecx, [ecx + eax*4]
mov edx, dword [esp + 0x1c]
push edi
mov ebx, dword [esp + 0x74]
push ebx
call fcn.00457fb2
add esp, 8
movzx ecx, byte [esp + 0x1b]
mov byte [esp + 4], al
test al, al
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x28], ecx
push 0
mov eax, 2
push eax
push esi
push eax
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x40]
call fcn.00411745
add esp, 0x18
lea ecx, [ebx - 0x10001]
cmp ecx, 0xffffe
mov ebp, dword [esp]
mov dword [esp + 0x4c], edi
ja 0x44e0bb
lea edi, [ebx + 0x3ff0000]
shr edi, 0xa
add edi, 0xffffd800
lea ecx, [esi + 1]
mov edx, ebx
and edx, 0x3ff
or edx, 0xdc00
mov word [eax + esi*2 + 2], dx
jmp 0x44e0bf
mov edi, ebx
mov ecx, esi
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
lea edx, [edx + ebx*4]
add edx, 0x10
mov dword [esp + 0x2c], eax
mov word [eax + esi*2], di
inc ecx
mov eax, dword [edx]
test eax, eax
je 0x44e1c8
mov esi, dword [esp + 0x1c]
mov edi, ecx
lea ebp, [eax + eax*4]
mov ebx, dword [esi + ebp*4]
mov eax, ebx
and eax, 0xffffff00
cmp eax, 0xda00
je 0x44e134
cmp eax, 0xd900
je 0x44e11e
cmp eax, 0xd800
jne 0x44e149
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x210
jmp 0x44e146
mov eax, dword [esp]
mov eax, dword [eax + 0x1064]
movzx ecx, bl
lea eax, [eax + ecx*2]
add eax, 0x610
jmp 0x44e146
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 edi
push eax
lea eax, [esp + 0x98]
push eax
push dword [esp + 0x40]
call fcn.00411745
add esp, 0x18
lea ecx, [ebx - 0x10001]
cmp ecx, 0xffffe
ja 0x44e19a
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 0x44e19e
mov edx, ebx
mov ecx, edi
lea esi, [esi + ebp*4]
mov dword [esp + 0x2c], eax
mov word [eax + edi*2], dx
mov edi, ecx
inc edi
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x44e0e6
or dword [esp + 0x38], 0x80000000
mov ebp, dword [esp]
mov eax, dword [esp + 0x20]
jmp 0x44e1ce
mov eax, dword [esp + 0x20]
mov edi, ecx
mov esi, dword [esp + 0x4c]
mov cl, byte [esp + 4]
test cl, cl
jne 0x44e285
mov dword [esp + 4], edi
mov eax, dword [ebp + 0x18]
mov ebx, dword [esp + 0x14]
mov ecx, dword [eax + ebx*4]
mov edi, dword [esp + 0xc]
mov edx, edi
push dword [esp + 0x1c]
call fcn.00456e3d
add esp, 4
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov edx, ebp
mov ebp, dword [esp + 8]
mov ecx, dword [esp + 0x70]
mov dword [eax + ebp], ecx
mov eax, dword [edx + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + ebp + 4], esi
mov esi, edx
mov eax, dword [edx + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov edx, dword [esp + 0x44]
mov dword [eax + ebp + 0xc], edx
mov ecx, dword [esp + 0x24]
mov dword [eax + ebp + 8], ecx
mov eax, edx
shr eax, 0x10
mov dword [esp + 0x5c], eax
mov eax, ecx
shr eax, 0x10
mov dword [esp + 0x64], eax
shr edx, 0x18
mov dword [esp + 0x58], edx
shr ecx, 0x18
mov dword [esp + 0x60], ecx
cmp dword [esp + 0x48], edi
jne 0x44e277
mov eax, dword [esi + 0x18]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
mov ecx, dword [esp + 0x30]
or dword [eax + ecx*4 + 4], 0x80000000
mov eax, dword [esp + 0x20]
mov edi, dword [esp + 4]
mov ebp, esi
mov esi, dword [esp + 0x4c]
bt esi, 0x16
jb 0x44e294
mov ebx, dword [esp + 0xc]
jmp 0x44e319
mov ebx, dword [esp + 0xc]
inc ebx
cmp ebx, dword [ebp + 0x12c]
jge 0x44e319
mov dword [esp + 4], edi
add dword [esp + 0x1c], 0x14
cmp dword [esp + 0x14], eax
jne 0x44e2cd
cmp ebx, dword [esp + 0x40]
jne 0x44e2cd
push 0x17f8
push str..._terminal.c
push str.__i__our_curs_y__j__our_curs_x_
call fcn.0048233d
add esp, 0xc
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, dword [eax + ecx*4]
lea ecx, [ebx + ebx*4]
shl ecx, 2
add ecx, dword [esi + 0x14]
mov edi, dword [esp + 0x1c]
mov edx, edi
push dword [edi + 4]
push dword [edi]
call fcn.00457fb2
add esp, 8
mov ecx, dword [esp + 0x28]
movzx ecx, cl
test al, al
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x28], ecx
mov ecx, esi
mov edx, ebx
push edi
call fcn.00456e3d
add esp, 4
mov edi, dword [esp + 4]
inc ebx
cmp ebx, dword [ebp + 0x12c]
jl 0x44dd0e
jmp 0x44e335
mov dword [esp + 0x24], 0
jmp 0x44dfb1
test byte [esp + 0x28], 1
mov ebx, dword [esp + 0x3c]
je 0x44e38b
test edi, edi
jle 0x44e38b
sub esp, 0x1c
movsd xmm0, qword [esp + 0x9c]
movsd qword [esp + 0x14], xmm0
mov eax, dword [esp + 0x54]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov ecx, ebp
mov edx, ebx
call fcn.00457ddc
add esp, 0x1c
jmp 0x44e38b
mov ebx, dword [esp + 0x3c]
cmp byte [ebx + 0xc], 0
je 0x44e3a5
push dword [ebx + 0x14]
call fcn.00411739
add esp, 4
push ebx
call fcn.00411739
add esp, 4
mov ebx, dword [esp + 0x14]
inc ebx
cmp ebx, dword [ebp + 0x128]
jl 0x44d7ff
push dword [esp + 0x10]
call fcn.00411739
add esp, 4
push dword [esp + 0x2c]
call fcn.00411739
add esp, 4
mov ecx, dword [esp + 0x8c]
xor ecx, esp
call fcn.00475893
add esp, 0x90
pop esi
pop edi
pop ebx
pop ebp
ret