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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xa0
mov eax, dword [0x4b6074]
mov ebx, ecx
xor eax, ebp
mov dword [esp + 0x98], eax
mov eax, 0x400
mov dword [esp + 0x94], eax
push 2
push eax
call fcn.00410d70
add esp, 8
mov dword [esp + 0xc], eax
push 0x14
push dword [ebx + 0x12c]
call fcn.00410d70
add esp, 8
mov dword [esp + 0x38], eax
mov al, byte [ebx + 0xbe]
cmp al, byte [ebx + 0x135]
setne al
cmp byte [ebx + 0xc4], 0
mov byte [esp + 0x10], al
je 0x448c89
cmp byte [ebx + 0x134], 0
je 0x448c93
cmp byte [ebx + 0xc7], 0
mov eax, 0x40000000
jne 0x448c98
xor eax, eax
cmp byte [ebx + 0x10c6], 0
sete al
shl eax, 0x1e
jmp 0x448c98
mov dword [esp + 0x58], 0
jmp 0x448cae
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [ebx + 0xae], 0
cmove ecx, eax
mov dword [esp + 0x58], ecx
mov edx, dword [ebx + 0x94]
mov ecx, ebx
mov esi, edx
sub esi, dword [ebx + 0x10]
push 0
push 0x1489
call fcn.0044aa06
add esp, 8
mov edi, dword [ebx + 0x98]
mov ecx, ebx
mov dword [esp + 8], eax
mov edx, eax
push esi
call fcn.0044cd7e
add esp, 4
test eax, eax
mov dword [esp + 4], ebx
je 0x448d01
mov ecx, dword [ebx + 0x1098]
lea edx, [esi + esi*4]
mov ebx, dword [esp + 8]
mov ecx, dword [ecx + edx*4 + 0xc]
mov edi, dword [ecx + edi*4]
mov edx, edi
jmp 0x448d0c
mov ecx, dword [esp + 8]
mov edx, edi
mov eax, dword [ecx + 0x14]
mov ebx, ecx
test edx, edx
jle 0x448d25
lea ecx, [edx + edx*4]
mov edi, edx
xor edx, edx
cmp dword [eax + ecx*4], 0xdfff
sete dl
sub edi, edx
mov edx, edi
mov edi, dword [esp + 4]
cmp byte [ebx + 0xc], 0
mov dword [esp + 0x5c], edx
je 0x448d47
push dword [ebx + 0x14]
call fcn.00410de6
add esp, 4
push ebx
call fcn.00410de6
add esp, 4
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x60], esi
test ecx, ecx
js 0x448dbd
mov eax, dword [edi + 0x1c]
cmp ecx, esi
jne 0x448d6a
mov edx, dword [esp + 0x58]
cmp dword [edi + 0x24], edx
mov edx, dword [esp + 0x5c]
jne 0x448d6a
cmp eax, edx
je 0x448dbd
mov edx, dword [edi + 0x18]
test eax, eax
mov ecx, dword [edx + ecx*4]
lea edx, [eax + eax*4]
mov ecx, dword [ecx + 0x14]
lea esi, [ecx + edx*4]
jle 0x448d8f
cmp dword [esi], 0xdfff
jne 0x448d8f
or dword [esi - 0x10], 0x3ffff
mov eax, dword [edi + 0x1c]
mov edi, dword [edi + 0x12c]
dec edi
cmp eax, edi
jge 0x448daa
cmp dword [esi + 0x14], 0xdfff
jne 0x448daa
or dword [esi + 0x18], 0x3ffff
or dword [ecx + edx*4 + 4], 0x3ffff
mov edi, dword [esp + 4]
mov dword [edi + 0x24], 0
xor eax, eax
dec eax
mov dword [edi + 0x20], eax
mov dword [edi + 0x1c], eax
cmp dword [edi + 0x128], 0
jle 0x449991
mov cl, byte [esp + 0x10]
xor eax, eax
mov al, cl
shl eax, 0x14
mov dword [esp + 0x48], eax
xor eax, eax
mov edx, dword [edi + 0x10]
mov esi, eax
mov ecx, edi
add edx, eax
mov dword [esp + 0x2c], edx
push 0
push 0x14bf
call fcn.0044aa06
add esp, 8
mov ebx, edi
mov edi, eax
mov edx, eax
mov ecx, ebx
push esi
call fcn.0044cd7e
add esp, 4
test eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x44], edi
je 0x448e30
mov eax, dword [ebx + 0x1098]
lea ecx, [esi + esi*4]
mov eax, dword [eax + ecx*4 + 0x10]
jmp 0x448e39
mov eax, dword [edi + 0x14]
mov dword [esp + 0x3c], eax
xor eax, eax
mov edi, ebx
mov ebx, dword [ebx + 0x12c]
mov edx, dword [esp + 0xc]
test ebx, ebx
jle 0x4492cb
xor ecx, ecx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], eax
test eax, eax
mov edx, ecx
je 0x448e68
mov edx, dword [eax + ecx*4]
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x1c], edx
mov esi, dword [esp + 4]
mov dword [esp + 0x14], ecx
xor eax, eax
mov edx, dword [ebx + edi + 4]
mov ebx, dword [ebx + edi]
mov ecx, edx
mov dword [esp + 8], ebx
and ecx, 0xfffc0000
or ecx, 0x20500
cmp byte [esi + 0x10a1], al
cmovne ecx, edx
cmp byte [esi + 0x10fb], al
jne 0x448eeb
mov edx, ecx
mov esi, ecx
mov eax, 0xf0
and edx, 0x1ff
and esi, 0xfffffe00
add edx, 0xfffffff0
or esi, 0x100
cmp edx, eax
cmovae esi, ecx
mov ecx, esi
shr ecx, 9
and ecx, 0x1ff
add ecx, 0xfffffff0
cmp ecx, eax
jae 0x448ee9
and esi, 0xfffc01ff
or esi, 0x20400
mov ecx, esi
mov edx, dword [esp + 4]
cmp byte [edx + 0x10fc], 0
je 0x448f0d
mov eax, dword [esp + 0x3c]
movsd xmm0, qword [eax + edi + 8]
movsd qword [esp + 0x88], xmm0
jmp 0x448f1d
xor eax, eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x88], eax
mov edx, dword [esp + 8]
and edx, 0xffffff00
cmp edx, 0xda00
je 0x448f6f
cmp edx, 0xd900
je 0x448f57
cmp edx, 0xd800
jne 0x448f93
mov edx, dword [esp + 4]
movzx esi, byte [esp + 8]
mov edx, dword [edx + 0x1060]
lea edx, [edx + esi*2 + 0x210]
jmp 0x448f82
mov edx, dword [esp + 4]
movzx esi, byte [esp + 8]
mov edx, dword [edx + 0x1060]
lea edx, [edx + esi*2 + 0x610]
jmp 0x448f82
mov edx, dword [esp + 4]
movzx esi, byte [esp + 8]
mov edx, dword [edx + 0x1060]
lea edx, [edx + esi*2 + 0x10]
movzx edx, word [edx]
mov eax, dword [esp + 0x14]
mov dword [esp + 8], edx
mov edx, dword [esp + 0xc]
jmp 0x448f9b
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x28]
dec ebx
cmp eax, ebx
jge 0x448fba
mov esi, dword [esp + 0x3c]
mov eax, ecx
or eax, 0x400000
cmp dword [esi + edi + 0x14], 0xdfff
cmove ecx, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0xe1c]
and eax, 0xfffffffe
cmp eax, 2
jne 0x449066
mov eax, dword [esp + 4]
cmp dword [eax + 0xe20], 0
mov eax, dword [eax + 0xe28]
je 0x44900b
cmp eax, dword [esp + 0x2c]
jg 0x449066
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x1c]
cmp dword [eax + 0xe2c], esi
jg 0x449066
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x2c]
cmp esi, dword [eax + 0xe30]
jle 0x449041
jmp 0x449066
cmp eax, dword [esp + 0x2c]
jl 0x449023
jne 0x449066
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x1c]
cmp dword [eax + 0xe2c], esi
jg 0x449066
mov eax, dword [esp + 4]
mov esi, dword [esp + 0x2c]
cmp esi, dword [eax + 0xe30]
jge 0x44903f
mov esi, ecx
mov ebx, dword [esp + 4]
xor esi, dword [esp + 0x48]
jmp 0x44905f
jne 0x449066
mov edx, dword [esp + 4]
mov ebx, dword [esp + 0x1c]
mov esi, ecx
xor eax, eax
xor esi, dword [esp + 0x48]
cmp ebx, dword [edx + 0xe34]
mov ebx, edx
mov edx, dword [esp + 0xc]
jge 0x449072
mov eax, 0x100000
jmp 0x449072
mov esi, ecx
mov ebx, dword [esp + 4]
xor eax, eax
xor esi, dword [esp + 0x48]
xor esi, eax
bt ecx, 0x15
mov dword [esp + 0x10], edi
jae 0x4490b7
mov al, byte [ebx + 0xc9]
test al, al
je 0x4490b7
cmp byte [ebx + 0x134], 0
mov ecx, dword [esp + 0x18]
je 0x4490af
cmp byte [ebx + 0xc8], 0
je 0x4490af
mov eax, dword [ebx + 0x1060]
movzx eax, word [eax + 0x250]
mov dword [esp + 8], eax
and esi, 0xffdfffff
jmp 0x4490bb
mov ecx, dword [esp + 0x18]
mov eax, dword [ebx + 0x18]
mov ebx, dword [esp + 8]
mov edi, dword [esp + 0x10]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
cmp ebx, dword [eax + edi]
jne 0x4490ee
mov eax, dword [eax + edi + 4]
mov ecx, eax
and ecx, 0xf7fffff
cmp esi, ecx
mov ecx, dword [esp + 0x18]
jne 0x4490ee
and eax, 0x800000
or esi, eax
jmp 0x449123
bt esi, 0x16
jb 0x449123
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x1058]
mov ecx, dword [eax]
push dword [esp + 8]
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 ecx, dword [esp + 0x18]
jmp 0x449127
mov edi, dword [esp + 4]
cmp ecx, dword [esp + 0x60]
jne 0x44914a
mov ecx, dword [esp + 0x5c]
cmp ecx, dword [esp + 0x14]
jne 0x44914a
mov eax, dword [esp + 0x58]
mov dword [edi + 0x24], eax
mov dword [edi + 0x1c], ecx
mov ecx, dword [esp + 0x60]
or esi, eax
mov dword [edi + 0x20], ecx
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 8]
mov dword [edi + ebx + 4], esi
mov dword [edi + ebx], eax
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x8c]
mov dword [edi + ebx + 0xc], ecx
mov dword [edi + ebx + 8], eax
mov dword [edi + ebx + 0x10], 0
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x14]
add ebx, 0x14
mov dword [esp + 0x10], ebx
mov eax, dword [edi + 0x12c]
inc ecx
mov dword [esp + 0x28], eax
cmp ecx, eax
mov eax, dword [esp + 0x20]
jl 0x448e5f
mov ecx, dword [esp + 0x28]
test ecx, ecx
jle 0x4492cb
xor eax, eax
xor ebx, ebx
mov dword [esp + 8], 0
mov dword [esp + 0x10], eax
mov edx, dword [edi + 0x18]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], ecx
mov edx, dword [edx + eax*4]
mov eax, dword [esp + 0x10]
mov edi, dword [edx + 0x14]
lea edx, [eax*4]
lea edx, [edx + edx*4]
mov esi, dword [edi + edx]
mov dword [esp + 0x20], esi
mov esi, dword [edi + edx + 4]
test esi, esi
cmovs ebx, eax
mov dword [esp + 0x14], ebx
jns 0x4491fa
mov dword [esp + 8], 0
lea ebx, [edi + edx + 4]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x38]
cmp ecx, dword [ebx + edx]
jne 0x449244
test byte [esp + 8], 1
jne 0x44922b
mov edx, dword [esp + 0x38]
mov ecx, esi
lea ebx, [eax + eax*4]
and ecx, 0xfffffff
cmp ecx, dword [edx + ebx*4 + 4]
jne 0x44924b
test byte [esp + 8], 1
mov edi, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
jne 0x4492b0
jmp 0x4492c2
test byte [esp + 8], 1
jne 0x44929a
mov ebx, dword [esp + 0x14]
mov dl, 1
mov dword [esp + 8], edx
cmp ebx, eax
jge 0x4492a8
lea edx, [ebx + ebx*4]
sub eax, ebx
mov ebx, dword [esp + 4]
mov ecx, dword [esp + 0x18]
lea esi, [edx*4 + 4]
or dword [edi + esi], 0x3ffff
add esi, 0x14
dec eax
mov edx, dword [ebx + 0x18]
mov edx, dword [edx + ecx*4]
mov edi, dword [edx + 0x14]
jne 0x44926d
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ecx*4]
lea edx, [edi + eax*4 + 4]
mov eax, ecx
mov edi, ebx
mov esi, dword [edx]
mov dword [esp + 0x1c], edx
jmp 0x44929e
mov edi, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
jmp 0x4492b0
mov edi, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
or esi, 0x3ffff
mov dword [ecx], esi
mov ecx, dword [edi + 0x12c]
inc eax
cmp eax, ecx
jl 0x4491b9
mov eax, dword [esp + 0x44]
mov ecx, dword [edi + 0x18]
mov esi, dword [esp + 0x18]
movzx eax, word [eax]
mov ecx, dword [ecx + esi*4]
cmp ax, word [ecx]
mov word [ecx], ax
mov eax, dword [edi + 0x74]
mov ecx, dword [edi + 0x78]
setne bl
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], eax
cmp dword [edi + 0x12c], 0
jle 0x449962
mov esi, ecx
mov dword [esp + 0x4c], ecx
shr ecx, 0x10
mov dword [esp + 0x2c], eax
mov byte [esp + 0x20], bl
mov byte [esp + 0x27], bl
xor ebx, ebx
mov dword [esp + 0x64], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x6c], ecx
mov ecx, eax
shr eax, 0x10
shr esi, 0x18
shr ecx, 0x18
mov dword [esp + 0x74], eax
xor eax, eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], eax
lea eax, [eax*4]
mov dword [esp + 0xc], edx
mov esi, dword [esp + 0x38]
mov dword [esp + 8], ebx
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x18]
mov ebx, dword [esi + edx + 4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x14]
mov eax, edx
mov dword [esp + 0x34], ecx
mov ecx, dword [ecx + edx + 4]
mov edx, dword [esi + edx]
mov dword [esp + 0x7c], ecx
xor ecx, ebx
mov dword [esp + 0x28], edx
bt ecx, 0x16
jae 0x4493a7
mov byte [esp + 0x27], 1
mov ecx, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x2c]
xor ecx, dword [esp + 0x40]
test dword [edi + 0x1040], ecx
mov edi, esi
setne cl
cmp byte [esi + eax + 8], bl
jne 0x449413
mov esi, dword [esp + 0x10]
mov ebx, dword [esp + 0x2c]
lea esi, [esi + esi*4]
cmp byte [edi + esi*4 + 9], bh
jne 0x449413
mov ebx, dword [esp + 0x74]
cmp byte [edi + esi*4 + 0xa], bl
jne 0x449413
mov ebx, dword [esp + 0x70]
cmp byte [edi + esi*4 + 0xb], bl
jne 0x449413
mov ebx, dword [esp + 0x4c]
cmp byte [edi + esi*4 + 0xc], bl
jne 0x449413
mov ebx, dword [esp + 0x4c]
cmp byte [edi + esi*4 + 0xd], bh
jne 0x449413
mov ebx, dword [esp + 0x6c]
cmp byte [edi + esi*4 + 0xe], bl
jne 0x449413
mov ebx, dword [esp + 0x68]
cmp byte [edi + esi*4 + 0xf], bl
je 0x449415
mov cl, 1
mov ebx, dword [esp + 0x28]
lea esi, [ebx - 0x23ba]
cmp esi, 4
jb 0x44943f
mov esi, dword [esp + 0x10]
test esi, esi
jle 0x449441
lea esi, [esi + esi*4]
mov esi, dword [edi + esi*4 - 0x14]
mov edi, 0xffffdc46
add esi, edi
cmp esi, 3
ja 0x449441
mov cl, 1
mov esi, ebx
mov edi, ebx
and ebx, 0xffffff00
mov edx, 0
and esi, 0xfffffe00
and edi, 0xfffffc00
cmp esi, 0xf000
cmove edx, ebx
cmp edi, 0xd800
cmove edx, ebx
cmp edx, dword [esp + 0x78]
mov dword [esp + 0x84], edx
je 0x44947d
mov cl, 1
mov ebx, dword [esp + 0x10]
mov edi, dword [esp + 0x3c]
lea esi, [ebx + ebx*4]
lea edx, [edi + eax]
cmp dword [edi + esi*4 + 0x10], 0
mov edi, dword [esp + 4]
mov dword [esp + 0x54], esi
je 0x4494ec
mov cl, 1
cmp dword [edx], 0xdffe
jne 0x4494a8
mov cl, 1
jmp 0x4494c1
cmp dword [esp + 0x10], 2
jl 0x4494c1
cmp dword [edx - 0x14], 0xdfff
jne 0x4494c1
cmp dword [edx - 0x28], 0xdffe
je 0x4494a4
mov edi, dword [edi + 0x1060]
mov dword [esp + 0x1c], edx
mov dl, byte [esp + 0x27]
mov dword [esp + 0x80], eax
mov ch, byte [edi + 4]
and dl, 1
mov byte [esp + 0x33], dl
mov bl, ch
or bl, dl
je 0x4494fb
mov ebx, dword [esp + 8]
jmp 0x449535
cmp dword [esp + 0x10], 0
jle 0x44949c
cmp dword [edx - 4], 0
jne 0x44949a
jmp 0x44949c
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 8]
and edx, 0xfffffff
cmp edx, dword [esp + 0x14]
jne 0x449520
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 0x34]
cmp dword [esi + edi*4], edx
je 0x449542
cmp ebx, 1
mov dh, 1
mov dl, 1
je 0x44952b
mov dl, cl
test byte [esp + 0x20], dh
je 0x449533
mov edx, ecx
mov cl, dl
test cl, cl
jne 0x449542
mov eax, dword [esp + 0x14]
jmp 0x44963b
mov edx, dword [esp + 0x38]
lea esi, [edx + eax + 8]
mov dl, byte [esp + 0x20]
and dl, 1
jne 0x449568
test ebx, ebx
jle 0x4495d1
mov ebx, dword [esp + 0x64]
mov cl, bl
mov ebx, dword [esp + 8]
and cl, 1
jne 0x44956c
jmp 0x4495d1
test ebx, ebx
jle 0x4495d1
sub esp, 0x1c
movsd xmm0, qword [esp + 0xa4]
movsd qword [esp + 0x14], xmm0
mov dword [esp + 0xc], ebx
mov byte [esp + 0x3c], dl
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
mov dword [esp + 8], edi
mov edi, dword [esp + 0x34]
mov dword [esp], ecx
mov ecx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 4], edi
call fcn.004525bf
mov dl, byte [esp + 0x3c]
add esp, 0x1c
mov eax, dword [ebx + 0x1060]
mov ch, byte [eax + 4]
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + edi*4]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x34], eax
mov edi, dword [esi]
mov ebx, dword [esi + 4]
test ch, ch
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x88], edi
je 0x4495ee
mov ecx, edx
mov dword [esp + 0x64], ecx
mov al, byte [esp + 0x33]
mov edx, edi
mov esi, dword [esp + 0x84]
mov ecx, ebx
mov dword [esp + 0x4c], ebx
shr ebx, 0x18
mov dword [esp + 0x2c], edi
shr edi, 0x18
shr edx, 0x10
shr ecx, 0x10
mov dword [esp + 0x68], ebx
xor ebx, ebx
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x6c], ecx
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x14]
mov dword [esp + 0x78], esi
mov dword [esp + 0x50], edx
mov dword [esp + 0x40], eax
mov esi, dword [esp + 0x54]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + esi*4]
push eax
mov edi, dword [esp + 0x2c]
push edi
call fcn.00452791
add esp, 8
test al, al
mov byte [esp + 0x34], al
jne 0x449665
mov byte [esp + 0x20], 1
mov eax, dword [esp + 0x3c]
lea esi, [eax + esi*4 + 0x10]
push 0
mov eax, 2
push eax
push ebx
push eax
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x20]
call fcn.00410df3
add esp, 0x18
lea ecx, [edi - 0x10001]
mov edx, eax
cmp ecx, 0xffffe
ja 0x4496c1
lea ecx, [edi - 0x10000]
mov eax, ecx
and ecx, 0x3ff
shr eax, 0xa
or ecx, 0xdc00
mov word [edx + ebx*2 + 2], cx
add eax, 0xffffd800
lea ecx, [ebx + 1]
jmp 0x4496c5
mov eax, edi
mov ecx, ebx
mov word [edx + ebx*2], ax
mov edi, dword [esp + 4]
mov ebx, ecx
mov eax, dword [esi]
inc ebx
test eax, eax
je 0x4497c7
mov esi, dword [esp + 0x1c]
lea ecx, [eax + eax*4]
mov edi, ebx
mov dword [esp + 0xc], edx
mov ebx, dword [esi + ecx*4]
mov dword [esp + 8], ecx
mov eax, ebx
and eax, 0xffffff00
cmp eax, 0xda00
je 0x449736
cmp eax, 0xd900
je 0x449720
cmp eax, 0xd800
jne 0x44974a
mov eax, dword [esp + 4]
movzx ecx, bl
mov eax, dword [eax + 0x1060]
lea eax, [eax + ecx*2 + 0x210]
jmp 0x449747
mov eax, dword [esp + 4]
movzx ecx, bl
mov eax, dword [eax + 0x1060]
lea eax, [eax + ecx*2 + 0x610]
jmp 0x449747
mov eax, dword [esp + 4]
movzx ecx, bl
mov eax, dword [eax + 0x1060]
lea eax, [eax + ecx*2 + 0x10]
movzx ebx, word [eax]
push 0
mov eax, 2
push eax
push edi
push eax
lea eax, [esp + 0xa4]
push eax
push dword [esp + 0x20]
call fcn.00410df3
add esp, 0x18
lea ecx, [ebx - 0x10001]
mov edx, eax
cmp ecx, 0xffffe
ja 0x44979e
add ebx, 0xffff0000
lea ecx, [edi + 1]
mov eax, ebx
and ebx, 0x3ff
shr eax, 0xa
or ebx, 0xdc00
add eax, 0xffffd800
mov word [edx + edi*2 + 2], bx
jmp 0x4497a2
mov eax, ebx
mov ecx, edi
mov word [edx + edi*2], ax
mov eax, dword [esp + 8]
mov ebx, ecx
inc ebx
lea esi, [esi + eax*4]
mov eax, dword [esi + 0x10]
test eax, eax
jne 0x4496de
mov edi, dword [esp + 4]
or dword [esp + 0x40], 0x80000000
mov al, byte [esp + 0x34]
mov ecx, dword [esp + 0x18]
test al, al
jne 0x449863
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x18]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xc], edx
mov ecx, dword [eax + ecx*4]
mov edx, ebx
push dword [esp + 0x1c]
call fcn.00451781
mov ecx, dword [esp + 0x1c]
add esp, 4
mov eax, dword [edi + 0x18]
mov esi, dword [esp + 0x80]
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x50], ebx
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + esi], edx
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + esi + 4], edx
mov edx, dword [esp + 0x4c]
mov eax, dword [edi + 0x18]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + esi + 0xc], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + esi + 8], edx
jne 0x44985b
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x54]
mov eax, dword [eax + ecx*4]
mov eax, dword [eax + 0x14]
or dword [eax + edx*4 + 4], 0x80000000
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 8]
bt dword [esp + 0x14], 0x16
jb 0x449874
mov eax, dword [esp + 0x10]
jmp 0x449907
mov eax, dword [esp + 0x10]
inc eax
cmp eax, dword [edi + 0x12c]
jge 0x449907
add dword [esp + 0x1c], 0x14
cmp ecx, dword [esp + 0x60]
mov dword [esp + 8], ebx
mov ebx, eax
mov dword [esp + 0xc], edx
jne 0x4498bb
cmp ebx, dword [esp + 0x5c]
jne 0x4498bb
push 0x15e1
push str..._terminal.c
push str.__i__our_curs_y__j__our_curs_x_
call fcn.0047b26f
mov ecx, dword [esp + 0x24]
add esp, 0xc
mov eax, dword [edi + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + ecx*4]
lea ecx, [ebx + ebx*4]
mov edx, esi
shl ecx, 2
add ecx, dword [eax + 0x14]
mov dword [esp + 0x10], eax
push dword [esi + 4]
push dword [esi]
call fcn.00452791
add esp, 8
test al, al
jne 0x4498ea
mov byte [esp + 0x20], 1
mov ecx, dword [esp + 0x10]
mov edx, ebx
push esi
call fcn.00451781
add esp, 4
mov eax, ebx
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 8]
inc eax
cmp eax, dword [edi + 0x12c]
jl 0x44935e
test byte [esp + 0x20], 1
mov esi, dword [esp + 0x44]
mov dword [esp + 0xc], edx
je 0x449966
test ebx, ebx
jle 0x449966
sub esp, 0x1c
movsd xmm0, qword [esp + 0xa4]
movsd qword [esp + 0x14], xmm0
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov edx, esi
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x5c]
mov dword [esp], ecx
mov ecx, edi
mov dword [esp + 0x10], eax
call fcn.004525bf
add esp, 0x1c
jmp 0x449966
mov esi, dword [esp + 0x44]
cmp byte [esi + 0xc], 0
je 0x449980
push dword [esi + 0x14]
call fcn.00410de6
add esp, 4
push esi
call fcn.00410de6
add esp, 4
mov eax, dword [esp + 0x18]
inc eax
cmp eax, dword [edi + 0x128]
jl 0x448de4
push dword [esp + 0x38]
call fcn.00410de6
add esp, 4
push dword [esp + 0xc]
call fcn.00410de6
add esp, 4
mov ecx, dword [esp + 0x98]
xor ecx, ebp
call fcn.0046ef41
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret