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

Disassembly:
sub esp, 0x7c
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov eax, 0x400
push ebx
push 2
push eax
mov dword [esp + 0x7c], eax
call fcn.0040dbd9
mov ebp, dword [esp + 0x9c]
push ebx
push 0x14
mov dword [esp + 0x40], eax
push dword [ebp + 0x12c]
call fcn.0040dbd9
mov dword [esp + 0x38], eax
add esp, 0x18
xor eax, eax
cmp byte [ebp + 0x135], al
sete al
xor ecx, ecx
cmp byte [ebp + 0xbe], cl
sete cl
sub eax, ecx
mov ecx, 0x100000
neg eax
sbb eax, eax
and eax, ecx
mov dword [esp + 0x74], eax
cmp byte [ebp + 0xc4], bl
je 0x44346b
cmp byte [ebp + 0x134], bl
je 0x44344f
cmp byte [ebp + 0xc7], bl
jne 0x443448
cmp byte [ebp + 0x10c6], bl
je 0x443448
mov eax, ebx
jmp 0x443454
mov eax, 0x40000000
jmp 0x443454
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [ebp + 0xae], bl
cmove ecx, eax
mov dword [esp + 0x5c], ecx
jmp 0x44346f
mov dword [esp + 0x5c], ebx
mov eax, dword [ebp + 0x94]
mov esi, eax
sub esi, dword [ebp + 0x10]
push ebx
push 0x1534
push eax
push ebp
mov dword [esp + 0x60], esi
call fcn.00444aaa
mov ebx, dword [ebp + 0x98]
mov edi, eax
push esi
push edi
push ebp
mov dword [esp + 0x70], ebx
call fcn.00446776
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x4434c0
imul edx, dword [esp + 0x50], 0x14
mov ecx, dword [ebp + 0x1098]
mov ecx, dword [ecx + edx + 0xc]
mov ebx, dword [ecx + ebx*4]
mov dword [esp + 0x54], ebx
jmp 0x4434c3
mov esi, dword [edi + 0x14]
test ebx, ebx
jle 0x4434d8
imul eax, ebx, 0x14
cmp dword [eax + esi], 0xdfff
jne 0x4434d8
dec ebx
mov dword [esp + 0x54], ebx
push edi
call fcn.0044c717
mov edx, dword [ebp + 0x20]
mov esi, 0x3ffff
pop ecx
test edx, edx
js 0x44353c
mov eax, dword [esp + 0x5c]
cmp dword [ebp + 0x24], eax
jne 0x4434ff
cmp edx, dword [esp + 0x50]
jne 0x4434ff
cmp dword [ebp + 0x1c], ebx
je 0x44353c
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x1c]
mov eax, dword [eax + edx*4]
imul edx, ecx, 0x14
add edx, dword [eax + 0x14]
test ecx, ecx
jle 0x44351d
cmp dword [edx], 0xdfff
jne 0x44351d
or dword [edx - 0x10], esi
mov eax, dword [ebp + 0x12c]
dec eax
cmp dword [ebp + 0x1c], eax
jge 0x443535
cmp dword [edx + 0x14], 0xdfff
jne 0x443535
or dword [edx + 0x18], esi
or dword [edx + 4], esi
and dword [ebp + 0x24], 0
or dword [ebp + 0x20], 0xffffffff
xor esi, esi
or dword [ebp + 0x1c], 0xffffffff
mov dword [esp + 0x14], esi
cmp dword [ebp + 0x128], esi
jle 0x443fc3
mov dword [esp + 0x78], 1
mov eax, dword [ebp + 0x10]
and dword [esp + 0x40], 0
add eax, esi
and dword [esp + 0x60], 0
and dword [esp + 0x58], 0
and dword [esp + 0x28], 0
push 0
push 0x156a
push eax
push ebp
mov byte [esp + 0x74], 0
mov dword [esp + 0x4c], eax
call fcn.00444aaa
mov ebx, eax
push esi
push ebx
push ebp
mov dword [esp + 0x88], ebx
call fcn.00446776
mov edi, eax
add esp, 0x1c
mov dword [esp + 0x18], edi
test edi, edi
je 0x4435bb
mov ecx, dword [ebp + 0x1098]
imul edx, esi, 0x14
mov edx, dword [ecx + edx + 0x10]
jmp 0x4435c4
mov edi, dword [ebx + 0x14]
xor edx, edx
mov dword [esp + 0x18], edi
xor ecx, ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x48], ecx
cmp dword [ebp + 0x12c], ecx
jle 0x4438a0
mov ebx, dword [esp + 0x20]
push 0xfffffffffffffff8
lea eax, [ebx + 0x10]
sub ebx, edi
mov dword [esp + 0x34], ebx
pop ebx
mov dword [esp + 0x68], eax
sub ebx, edi
lea eax, [edi + 8]
mov dword [esp + 0x44], ebx
mov dword [esp + 0x34], eax
test edx, edx
je 0x443604
mov ebx, dword [edx + ecx*4]
jmp 0x443606
mov ebx, ecx
cmp byte [ebp + 0x10a1], 0
mov ecx, dword [eax - 8]
mov edx, dword [eax - 4]
mov dword [esp + 0x38], ecx
jne 0x443625
and edx, 0xfffe0500
or edx, 0x20500
cmp byte [ebp + 0x10fb], 0
jne 0x44366d
mov eax, edx
mov esi, 0x1ff
and eax, esi
mov edi, 0xef
sub eax, 0x10
cmp eax, edi
ja 0x44364f
and edx, 0xffffff00
or edx, 0x100
mov eax, edx
shr eax, 9
and eax, esi
sub eax, 0x10
cmp eax, edi
mov eax, dword [esp + 0x34]
ja 0x44366d
and edx, 0xfffe05ff
or edx, 0x20400
cmp byte [ebp + 0x10fc], 0
je 0x44367d
mov edi, dword [eax]
mov esi, dword [eax + 4]
jmp 0x443685
mov esi, dword [0x49b498]
mov edi, esi
mov eax, ecx
and eax, 0xffffff00
cmp eax, 0xd800
je 0x4436c4
cmp eax, 0xd900
je 0x4436b1
cmp eax, 0xda00
jne 0x4436d9
mov eax, dword [ebp + 0x1060]
movzx ecx, cl
movzx ecx, word [eax + ecx*2 + 0x10]
jmp 0x4436d5
mov eax, dword [ebp + 0x1060]
movzx ecx, cl
movzx ecx, word [eax + ecx*2 + 0x610]
jmp 0x4436d5
mov eax, dword [ebp + 0x1060]
movzx ecx, cl
movzx ecx, word [eax + ecx*2 + 0x210]
mov dword [esp + 0x38], ecx
mov eax, dword [ebp + 0x12c]
dec eax
cmp dword [esp + 0x48], eax
jge 0x4436f9
mov eax, dword [esp + 0x34]
cmp dword [eax + 0xc], 0xdfff
jne 0x4436f9
or edx, 0x400000
mov eax, dword [ebp + 0xe1c]
cmp eax, 2
je 0x443709
cmp eax, 3
jne 0x443751
cmp dword [ebp + 0xe20], 0
jne 0x4437d5
mov eax, dword [ebp + 0xe28]
cmp eax, dword [esp + 0x3c]
je 0x443727
setl al
jmp 0x443730
cmp dword [ebp + 0xe2c], ebx
setle al
test al, al
je 0x443751
mov eax, dword [ebp + 0xe30]
cmp dword [esp + 0x3c], eax
jne 0x443746
cmp ebx, dword [ebp + 0xe34]
setl al
test al, al
jne 0x443809
xor al, al
xor ebx, ebx
test al, al
mov eax, 0x100000
cmovne ebx, eax
xor ebx, edx
xor ebx, dword [esp + 0x74]
cmp byte [ebp + 0xc9], 0
je 0x44379f
test ebx, 0x200000
je 0x44379f
cmp byte [ebp + 0x134], 0
je 0x443799
cmp byte [ebp + 0xc8], 0
je 0x443799
mov eax, dword [ebp + 0x1060]
movzx ecx, word [eax + 0x250]
mov dword [esp + 0x38], ecx
and ebx, 0xffdfffff
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
add eax, dword [esp + 0x44]
cmp ecx, dword [eax + edx]
jne 0x443811
mov ecx, dword [eax + edx + 4]
mov eax, ecx
and eax, 0xf7fffff
cmp ebx, eax
jne 0x443811
mov eax, 0x800000
test eax, ecx
je 0x443836
or ebx, eax
jmp 0x443836
mov eax, dword [esp + 0x3c]
cmp dword [ebp + 0xe28], eax
jg 0x443751
cmp dword [ebp + 0xe2c], ebx
jg 0x443751
cmp eax, dword [ebp + 0xe30]
jg 0x443751
cmp ebx, dword [ebp + 0xe34]
jge 0x443751
xor eax, eax
inc eax
jmp 0x443753
test ebx, 0x400000
jne 0x443836
mov eax, dword [ebp + 0x1058]
push dword [esp + 0x38]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x10]
pop ecx
pop ecx
cmp eax, 2
jne 0x443836
or ebx, 0x800000
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jne 0x443859
cmp ecx, dword [esp + 0x54]
jne 0x443859
mov edx, dword [esp + 0x5c]
or ebx, edx
mov dword [ebp + 0x24], edx
mov dword [ebp + 0x1c], ecx
mov dword [ebp + 0x20], eax
mov edx, dword [esp + 0x68]
mov eax, dword [esp + 0x38]
and dword [edx], 0
inc ecx
mov dword [edx - 0x10], eax
mov eax, dword [esp + 0x34]
mov dword [edx - 0xc], ebx
add edx, 0x14
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x48], ecx
mov dword [ebx + eax], edi
mov dword [ebx + eax + 4], esi
add eax, 0x14
mov dword [esp + 0x34], eax
cmp ecx, dword [ebp + 0x12c]
jl 0x4435fb
mov esi, dword [esp + 0x14]
xor eax, eax
xor bl, bl
xor edi, edi
mov dword [esp + 0x68], eax
cmp dword [ebp + 0x12c], eax
jle 0x44396d
xor edx, edx
and dword [esp + 0x4c], eax
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x48], eax
mov esi, dword [eax + edx + 4]
test esi, esi
jns 0x4438d9
mov dword [esp + 0x68], edi
mov dword [esp + 0x4c], edx
mov ebp, dword [esp + 0x20]
xor ecx, ecx
movzx eax, bl
test esi, esi
cmovns ecx, eax
mov eax, dword [esp + 0x48]
mov bl, cl
mov eax, dword [eax + edx]
cmp eax, dword [edx + ebp]
mov ebp, dword [esp + 0x90]
jne 0x44390c
mov eax, dword [esp + 0x20]
and esi, 0xfffffff
cmp esi, dword [edx + eax + 4]
je 0x443944
mov bl, cl
test cl, cl
jne 0x443944
mov eax, dword [esp + 0x68]
cmp eax, edi
jge 0x44393f
mov esi, dword [esp + 0x4c]
mov ecx, edi
mov ebx, dword [esp + 0x14]
sub ecx, eax
mov eax, dword [ebp + 0x18]
lea esi, [esi + 0x14]
mov eax, dword [eax + ebx*4]
mov eax, dword [eax + 0x14]
or dword [eax + esi - 0x10], 0x3ffff
sub ecx, 1
jne 0x443926
xor eax, eax
lea ebx, [eax + 1]
mov esi, dword [esp + 0x14]
test bl, bl
je 0x44395d
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x14]
or dword [eax + edx + 4], 0x3ffff
inc edi
add edx, 0x14
cmp edi, dword [ebp + 0x12c]
jl 0x4438bc
mov eax, dword [ebp + 0x18]
mov ebx, dword [esp + 0x6c]
mov ecx, dword [eax + esi*4]
movzx eax, word [ebx]
cmp ax, word [ecx]
mov word [ecx], ax
mov ecx, dword [ebp + 0x74]
setne dl
mov eax, dword [ebp + 0x78]
and dword [esp + 0x1c], 0
cmp dword [ebp + 0x12c], 0
mov dword [esp + 0x4c], edx
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x88], eax
jle 0x443f85
mov edx, dword [esp + 0x20]
xor edi, edi
mov ebx, dword [esp + 0x18]
add edx, 8
mov dword [esp + 0x48], edi
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0x68], ebx
mov ebx, dword [edi + edx + 4]
mov edx, dword [edi + edx]
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x44], ebx
mov edx, dword [edx + esi*4]
mov edx, dword [edx + 0x14]
mov dword [esp + 0x7c], edx
mov esi, dword [edx + edi + 4]
mov edx, esi
xor edx, ebx
test edx, 0x400000
mov edx, dword [esp + 0x4c]
movzx edx, dl
cmovne edx, dword [esp + 0x78]
mov dword [esp + 0x4c], edx
mov edx, ebx
xor edx, dword [esp + 0x40]
test dword [ebp + 0x1040], edx
mov edx, dword [esp + 0x38]
setne bl
cmp byte [edx], cl
jne 0x443a7d
mov edx, dword [esp + 0x20]
cmp byte [edi + edx + 9], ch
jne 0x443a7d
mov dl, byte [edi + edx + 0xa]
cmp dl, byte [esp + 0x86]
jne 0x443a7d
mov edx, dword [esp + 0x20]
mov dl, byte [edi + edx + 0xb]
cmp dl, byte [esp + 0x87]
jne 0x443a7d
mov edx, dword [esp + 0x20]
cmp byte [edi + edx + 0xc], al
jne 0x443a7d
cmp byte [edi + edx + 0xd], ah
jne 0x443a7d
mov dl, byte [edi + edx + 0xe]
cmp dl, byte [esp + 0x8a]
jne 0x443a7d
mov edx, dword [esp + 0x20]
mov dl, byte [edi + edx + 0xf]
cmp dl, byte [esp + 0x8b]
je 0x443a82
xor edx, edx
lea ebx, [edx + 1]
mov edx, dword [esp + 0x30]
cmp edx, 0x23ba
jb 0x443a96
cmp edx, 0x23bd
jbe 0x443abd
cmp dword [esp + 0x1c], 0
jle 0x443ac0
mov ecx, dword [esp + 0x20]
cmp dword [edi + ecx - 0x14], 0x23ba
mov ecx, dword [esp + 0x34]
jb 0x443ac0
mov ebp, dword [esp + 0x20]
cmp dword [edi + ebp - 0x14], 0x23bd
ja 0x443ac0
xor ebx, ebx
inc ebx
and edx, 0xfffffc00
mov dword [esp + 0x80], edx
cmp edx, 0xd800
je 0x443aeb
mov edx, dword [esp + 0x30]
and edx, 0xfffffe00
cmp edx, 0xf000
je 0x443aeb
xor edx, edx
jmp 0x443af5
mov edx, dword [esp + 0x30]
and edx, 0xffffff00
cmp edx, dword [esp + 0x60]
push 1
pop edx
movzx ebx, bl
cmovne ebx, edx
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x10], 0
mov edx, dword [esp + 0x1c]
jne 0x443b22
test edx, edx
jle 0x443b25
mov eax, dword [esp + 0x18]
cmp dword [eax - 4], 0
mov eax, dword [esp + 0x3c]
je 0x443b25
xor ebx, ebx
inc ebx
mov ebp, dword [esp + 0x18]
cmp dword [ebp], 0xdffe
mov ebp, dword [esp + 0x90]
je 0x443b54
cmp edx, 2
jl 0x443b59
mov edx, dword [esp + 0x18]
cmp dword [edx - 0x14], 0xdfff
jne 0x443b59
cmp dword [edx - 0x28], 0xdffe
jne 0x443b59
xor edx, edx
lea ebx, [edx + 1]
mov edx, dword [ebp + 0x1060]
cmp byte [edx + 4], 0
jne 0x443ba2
cmp byte [esp + 0x4c], 0
jne 0x443ba2
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x30]
cmp dword [edx + edi], ecx
mov ecx, dword [esp + 0x34]
jne 0x443b8b
mov edi, dword [esp + 0x44]
and esi, 0xfffffff
cmp esi, edi
je 0x443bae
mov edx, dword [esp + 0x24]
test dl, dl
jne 0x443ba2
movzx edx, bl
xor ebx, ebx
inc ebx
cmp dword [esp + 0x28], ebx
cmove edx, ebx
mov bl, dl
test bl, bl
je 0x443c72
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x24]
test dl, dl
jne 0x443bbc
cmp byte [esp + 0x64], dl
je 0x443beb
mov ebx, dword [esp + 0x28]
test ebx, ebx
jle 0x443beb
push eax
push ecx
push dword [esp + 0x48]
push ebx
push dword [esp + 0x3c]
push dword [esp + 0x28]
push dword [esp + 0x70]
push dword [esp + 0x88]
push ebp
call fcn.00443fdf
mov edx, dword [esp + 0x48]
add esp, 0x24
mov eax, dword [esp + 0x1c]
and dword [esp + 0x28], 0
cmp dword [esp + 0x80], 0xd800
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], edi
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x34], edi
mov dword [esp + 0x84], edi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x88], esi
je 0x443c3f
mov eax, dword [esp + 0x30]
and eax, 0xfffffe00
cmp eax, 0xf000
je 0x443c3f
and dword [esp + 0x60], 0
jmp 0x443c4d
mov ebx, dword [esp + 0x30]
and ebx, 0xffffff00
mov dword [esp + 0x60], ebx
mov ecx, dword [ebp + 0x1060]
mov ebx, dword [esp + 0x64]
movzx eax, dl
movzx ebx, bl
cmp byte [ecx + 4], 0
cmovne ebx, eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x64], ebx
mov byte [esp + 0x24], al
jmp 0x443c7a
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov eax, dword [ebp + 0x18]
push dword [esp + 0x44]
mov ebx, dword [esp + 0x4c]
push dword [esp + 0x34]
mov eax, dword [eax + ecx*4]
push dword [esp + 0x20]
mov eax, dword [eax + 0x14]
add eax, ebx
push eax
call fcn.0044c241
mov ecx, dword [esp + 0x34]
test al, al
push 1
mov byte [esp + 0x27], al
pop eax
push 0
push 2
push dword [esp + 0x40]
movzx ecx, cl
cmove ecx, eax
lea eax, [esp + 0x8c]
push 2
push eax
push dword [esp + 0x50]
mov dword [esp + 0x4c], ecx
call fcn.0040dac4
mov ecx, dword [esp + 0x58]
add esp, 0x28
mov edx, dword [esp + 0x28]
mov dword [esp + 0x2c], eax
lea eax, [ecx - 0x10001]
cmp eax, 0xffffe
ja 0x443d1c
mov edi, dword [esp + 0x2c]
lea eax, [ecx - 0x10000]
shr eax, 0xa
sub eax, 0x2800
mov word [edi + edx*2], ax
mov eax, ecx
inc edx
mov ecx, edi
mov edi, dword [esp + 0x34]
and eax, 0x3ff
sub eax, 0x2400
mov word [ecx + edx*2], ax
jmp 0x443d24
mov eax, dword [esp + 0x2c]
mov word [eax + edx*2], cx
mov eax, dword [esp + 0x18]
inc edx
mov dword [esp + 0x28], edx
cmp dword [eax + 0x10], 0
je 0x443e1a
mov esi, dword [esp + 0x2c]
mov ecx, eax
mov edi, edx
imul eax, dword [ecx + 0x10], 0x14
add ecx, eax
mov dword [esp + 0x80], ecx
mov ebx, dword [ecx]
mov eax, ebx
and eax, 0xffffff00
cmp eax, 0xd800
je 0x443d8d
cmp eax, 0xd900
je 0x443d7a
cmp eax, 0xda00
jne 0x443d9e
mov eax, dword [ebp + 0x1060]
movzx ecx, bl
movzx ebx, word [eax + ecx*2 + 0x10]
jmp 0x443d9e
mov eax, dword [ebp + 0x1060]
movzx ecx, bl
movzx ebx, word [eax + ecx*2 + 0x610]
jmp 0x443d9e
mov eax, dword [ebp + 0x1060]
movzx ecx, bl
movzx ebx, word [eax + ecx*2 + 0x210]
push 0
push 2
push edi
push 2
lea eax, [esp + 0x80]
push eax
push esi
call fcn.0040dac4
mov esi, eax
add esp, 0x18
lea eax, [ebx - 0x10001]
cmp eax, 0xffffe
ja 0x443de4
lea eax, [ebx - 0x10000]
and ebx, 0x3ff
shr eax, 0xa
sub eax, 0x2800
mov word [esi + edi*2], ax
inc edi
sub ebx, 0x2400
mov ecx, dword [esp + 0x80]
mov word [esi + edi*2], bx
inc edi
cmp dword [ecx + 0x10], 0
jne 0x443d3f
or dword [esp + 0x40], 0x80000000
mov ebx, dword [esp + 0x48]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x28], edi
mov edi, dword [esp + 0x34]
cmp byte [esp + 0x13], 0
jne 0x443e8f
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [ebp + 0x18]
push dword [esp + 0x20]
push dword [eax + ecx*4]
call fcn.0044306e
mov eax, dword [ebp + 0x18]
add esp, 0xc
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
mov dword [ebx + eax], ecx
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x44]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + ebx + 4], ecx
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + ebx + 8], edi
mov edi, dword [esp + 0x48]
mov dword [eax + edi + 0xc], esi
mov eax, dword [esp + 0x1c]
cmp dword [esp + 0x58], eax
jne 0x443e9f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
or dword [eax + edi + 4], 0x80000000
jmp 0x443e9b
mov edi, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
test ecx, 0x400000
mov ecx, dword [esp + 0x38]
je 0x443f43
add dword [esp + 0x18], 0x14
inc eax
add ecx, 0x14
mov dword [esp + 0x1c], eax
add edi, 0x14
mov dword [esp + 0x38], ecx
cmp eax, dword [ebp + 0x12c]
jge 0x443f43
mov ebx, dword [esp + 0x68]
add ebx, 0x14
mov dword [esp + 0x68], ebx
cmp edx, dword [esp + 0x50]
jne 0x443efd
cmp eax, dword [esp + 0x54]
jne 0x443efd
push 0x168c
push str..._terminal.c
push str.__i__our_curs_y__j__our_curs_x_
call fcn.0046a02e
mov edx, dword [esp + 0x20]
add esp, 0xc
mov eax, dword [ebp + 0x18]
push dword [ebx + 4]
push dword [ebx]
mov esi, dword [eax + edx*4]
push ebx
mov eax, dword [esi + 0x14]
add eax, edi
push eax
call fcn.0044c241
mov edx, dword [esp + 0x34]
xor ecx, ecx
test al, al
lea ebx, [ecx + 1]
movzx ecx, dl
mov edx, dword [esp + 0x78]
cmovne ebx, ecx
push edx
push dword [esp + 0x30]
push esi
call fcn.0044306e
mov ecx, dword [esp + 0x54]
mov dl, bl
add esp, 0x1c
mov dword [esp + 0x24], edx
jmp 0x443f47
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add ecx, 0x14
mov ebx, dword [esp + 0x18]
inc eax
mov esi, dword [esp + 0x14]
add edi, 0x14
add ebx, 0x14
mov dword [esp + 0x1c], eax
cmp eax, dword [ebp + 0x12c]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], edi
mov dword [esp + 0x18], ebx
jl 0x4439ce
mov ebx, dword [esp + 0x6c]
test dl, dl
je 0x443fab
mov edx, dword [esp + 0x28]
test edx, edx
jle 0x443fab
push eax
push ecx
push dword [esp + 0x48]
push edx
push dword [esp + 0x3c]
push esi
push dword [esp + 0x70]
push ebx
push ebp
call fcn.00443fdf
add esp, 0x24
push ebx
call fcn.0044c717
inc esi
pop ecx
mov dword [esp + 0x14], esi
cmp esi, dword [ebp + 0x128]
jl 0x44355e
push dword [esp + 0x20]
call fcn.0040dab8
push dword [esp + 0x30]
call fcn.0040dab8
pop ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x7c
ret