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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
push ebx
push esi
mov ebx, ecx
mov dword [esp + 0x68], 0x400
push edi
push 0
mov edx, 2
mov dword [esp + 0x30], ebx
mov ecx, 0x400
call fcn.0048ffe0
mov ecx, dword [ebx + 0x12c]
add esp, 4
mov edx, 0x14
mov dword [esp + 0x28], eax
push 0
call fcn.0048ffe0
mov dword [esp + 0x18], eax
add esp, 4
xor eax, eax
cmp byte [ebx + 0x135], al
sete al
xor ecx, ecx
cmp byte [ebx + 0xbe], cl
sete cl
xor eax, ecx
shl eax, 0x14
cmp byte [ebx + 0xc4], 0
mov dword [esp + 0x70], eax
je 0x414116
cmp byte [ebx + 0x134], 0
je 0x4140f9
cmp byte [ebx + 0xc7], 0
jne 0x4140f2
cmp byte [ebx + 0x10d2], 0
je 0x4140f2
xor eax, eax
jmp 0x4140fe
mov eax, 0x40000000
jmp 0x4140fe
mov eax, 0x20000000
mov ecx, eax
or ecx, 0x10000000
cmp byte [ebx + 0xae], 0
cmove ecx, eax
mov dword [esp + 0x60], ecx
jmp 0x41411e
mov dword [esp + 0x60], 0
mov eax, dword [ebx + 0x94]
mov esi, eax
sub esi, dword [ebx + 0x10]
push 0
push 0x17c7
push eax
push ebx
mov dword [esp + 0x68], esi
call fcn.0040bdf0
mov edi, eax
mov ecx, ebx
mov eax, dword [ebx + 0x98]
mov edx, edi
push esi
mov dword [esp + 0x4c], eax
call fcn.00413a50
mov esi, eax
add esp, 0x14
test esi, esi
je 0x414178
mov eax, dword [esp + 0x58]
mov ecx, dword [ebx + 0x10a4]
lea edx, [eax + eax*4]
mov ecx, dword [ecx + edx*4 + 0xc]
mov edx, dword [esp + 0x38]
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x38], edx
jmp 0x41417f
mov esi, dword [edi + 0x14]
mov edx, dword [esp + 0x38]
test edx, edx
jle 0x414194
lea eax, [edx + edx*4]
cmp dword [esi + eax*4], 0xdfff
jne 0x414194
dec edx
mov dword [esp + 0x38], edx
mov ecx, edi
call fcn.0040ac70
mov ecx, dword [ebx + 0x20]
test ecx, ecx
js 0x414209
mov eax, dword [esp + 0x60]
cmp dword [ebx + 0x24], eax
jne 0x4141ba
cmp ecx, dword [esp + 0x58]
jne 0x4141ba
mov eax, dword [esp + 0x38]
cmp dword [ebx + 0x1c], eax
je 0x414209
mov eax, dword [ebx + 0x18]
mov edx, dword [ebx + 0x1c]
mov eax, dword [eax + ecx*4]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 0x14]
lea ecx, [eax + ecx*4]
test edx, edx
jle 0x4141df
cmp dword [ecx], 0xdfff
jne 0x4141df
or dword [ecx - 0x10], 0x3ffff
mov eax, dword [ebx + 0x12c]
dec eax
cmp dword [ebx + 0x1c], eax
jge 0x4141fb
cmp dword [ecx + 0x14], 0xdfff
jne 0x4141fb
or dword [ecx + 0x18], 0x3ffff
or dword [ecx + 4], 0x3ffff
mov dword [ebx + 0x24], 0
xor esi, esi
mov dword [ebx + 0x20], 0xffffffff
mov dword [ebx + 0x1c], 0xffffffff
mov dword [esp + 0x10], esi
cmp dword [ebx + 0x128], esi
jle 0x414d84
nop dword [eax]
mov eax, dword [ebx + 0x10]
push 0
add eax, esi
mov dword [esp + 0x48], 0
push 0x17fd
push eax
push ebx
mov dword [esp + 0x74], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x2c], 0
mov byte [esp + 0x5c], 0
mov dword [esp + 0x58], eax
call fcn.0040bdf0
mov edi, eax
mov ecx, ebx
push esi
mov edx, edi
mov dword [esp + 0x7c], edi
call fcn.00413a50
add esp, 0x14
mov dword [esp + 0x24], eax
test eax, eax
je 0x414296
mov ecx, dword [ebx + 0x10a4]
lea edx, [esi + esi*4]
mov edi, dword [ecx + edx*4 + 0x10]
jmp 0x41429f
mov eax, dword [edi + 0x14]
xor edi, edi
mov dword [esp + 0x24], eax
mov ecx, dword [ebx + 0x12c]
xor esi, esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
test ecx, ecx
jle 0x4145ef
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
add eax, 0x10
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
sub eax, ecx
mov dword [esp + 0x74], eax
lea edx, [ecx + 8]
mov eax, 0xfffffff8
mov dword [esp + 0x40], edx
sub eax, ecx
mov dword [esp + 0x20], eax
mov eax, dword [0x4c78a0]
test edi, edi
je 0x4142f4
mov ecx, dword [edi + esi*4]
mov dword [esp + 0x50], ecx
jmp 0x4142f8
mov dword [esp + 0x50], esi
cmp byte [ebx + 0x10ad], 0
mov ecx, dword [edx - 8]
mov edx, dword [edx - 4]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], edx
jne 0x41431f
and edx, 0xfffe0500
or edx, 0x20500
mov dword [esp + 0x3c], edx
cmp byte [ebx + 0x110b], 0
jne 0x414375
mov ecx, edx
and ecx, 0x1ff
sub ecx, 0x10
cmp ecx, 0xef
ja 0x41434b
and edx, 0xffffff00
or edx, 0x100
mov dword [esp + 0x3c], edx
mov ecx, edx
shr ecx, 9
and ecx, 0x1ff
sub ecx, 0x10
cmp ecx, 0xef
mov ecx, dword [esp + 0x18]
ja 0x414375
and edx, 0xfffe05ff
or edx, 0x20400
mov dword [esp + 0x3c], edx
cmp byte [ebx + 0x110c], 0
je 0x414389
mov esi, dword [esp + 0x40]
mov edi, dword [esi]
mov esi, dword [esi + 4]
jmp 0x41438d
mov esi, eax
mov edi, esi
and ecx, 0xffffff00
cmp ecx, 0xd800
je 0x4143d6
cmp ecx, 0xd900
je 0x4143bf
cmp ecx, 0xda00
jne 0x4143f3
mov ecx, dword [esp + 0x18]
movzx edx, cl
mov ecx, dword [ebx + 0x106c]
movzx ecx, word [ecx + edx*2 + 0xc]
jmp 0x4143eb
mov ecx, dword [esp + 0x18]
movzx edx, cl
mov ecx, dword [ebx + 0x106c]
movzx ecx, word [ecx + edx*2 + 0x60c]
jmp 0x4143eb
mov ecx, dword [esp + 0x18]
movzx edx, cl
mov ecx, dword [ebx + 0x106c]
movzx ecx, word [ecx + edx*2 + 0x20c]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x18], ecx
mov ecx, dword [ebx + 0x12c]
dec ecx
cmp dword [esp + 0x34], ecx
jge 0x414413
mov ecx, dword [esp + 0x40]
cmp dword [ecx + 0xc], 0xdfff
jne 0x414413
or edx, 0x400000
mov ecx, dword [ebx + 0xe28]
cmp ecx, 2
je 0x414423
cmp ecx, 3
jne 0x414473
cmp dword [ebx + 0xe2c], 0
mov ecx, dword [ebx + 0xe34]
jne 0x4144fe
cmp ecx, dword [esp + 0x48]
je 0x414441
setl cl
jmp 0x41444e
mov ecx, dword [esp + 0x50]
cmp dword [ebx + 0xe38], ecx
setle cl
test cl, cl
je 0x414473
mov ecx, dword [ebx + 0xe3c]
cmp dword [esp + 0x48], ecx
jne 0x414468
mov ecx, dword [esp + 0x50]
cmp ecx, dword [ebx + 0xe40]
setl cl
test cl, cl
jne 0x414534
xor ebx, ebx
shl ebx, 0x14
xor ebx, edx
mov edx, dword [esp + 0x2c]
xor ebx, dword [esp + 0x70]
cmp byte [edx + 0xc9], 0
je 0x4144bc
test ebx, 0x200000
je 0x4144bc
cmp byte [edx + 0x134], 0
je 0x4144b6
cmp byte [edx + 0xc8], 0
je 0x4144b6
mov ecx, dword [edx + 0x106c]
movzx ecx, word [ecx + 0x24c]
mov dword [esp + 0x18], ecx
and ebx, 0xffdfffff
mov eax, dword [esp + 0x10]
mov ecx, dword [edx + 0x18]
mov ecx, dword [ecx + eax*4]
mov eax, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
add ecx, dword [esp + 0x20]
add ecx, dword [esp + 0x40]
mov dword [esp + 0x50], ecx
cmp eax, dword [ecx]
mov eax, dword [0x4c78a0]
jne 0x41453e
mov ecx, dword [ecx + 4]
and ecx, 0xf7fffff
cmp ebx, ecx
jne 0x41453e
mov ecx, dword [esp + 0x50]
test dword [ecx + 4], 0x800000
je 0x41456f
jmp 0x414569
cmp ecx, dword [esp + 0x48]
jg 0x414473
mov ecx, dword [esp + 0x50]
cmp dword [ebx + 0xe38], ecx
jg 0x414473
mov eax, dword [esp + 0x48]
cmp eax, dword [ebx + 0xe3c]
jg 0x414473
cmp ecx, dword [ebx + 0xe40]
jge 0x414473
mov ebx, 1
jmp 0x414475
test ebx, 0x400000
jne 0x41456f
mov eax, dword [edx + 0x1064]
push dword [esp + 0x18]
push eax
mov ecx, dword [eax]
mov eax, dword [ecx + 0x10]
call eax
mov edx, dword [esp + 0x34]
add esp, 8
cmp eax, 2
mov eax, dword [0x4c78a0]
jne 0x41456f
or ebx, 0x800000
mov ecx, dword [esp + 0x58]
cmp dword [esp + 0x10], ecx
jne 0x41459b
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x38]
jne 0x41459b
mov eax, dword [esp + 0x60]
or ebx, eax
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov dword [edx + 0x24], eax
mov eax, dword [0x4c78a0]
mov dword [edx + 0x20], ecx
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x40]
mov dword [ecx - 0xc], ebx
mov ebx, dword [esp + 0x54]
mov ecx, dword [esp + 0x18]
mov dword [ebx - 0x10], ecx
mov ecx, dword [esp + 0x74]
mov dword [ebx], 0
add ebx, 0x14
mov dword [esp + 0x54], ebx
mov ebx, dword [esp + 0x2c]
mov dword [ecx + edx + 4], esi
mov esi, dword [esp + 0x34]
mov dword [ecx + edx], edi
inc esi
mov ecx, dword [ebx + 0x12c]
add edx, 0x14
mov edi, dword [esp + 0x30]
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], edx
cmp esi, ecx
jl 0x4142e7
xor edi, edi
mov dword [esp + 0x54], 0
mov byte [esp + 0xe], 0
test ecx, ecx
jle 0x4146df
mov ecx, dword [esp + 0x10]
lea esi, [edi + edi*4]
mov eax, dword [ebx + 0x18]
shl esi, 2
mov eax, dword [eax + ecx*4]
xor ecx, ecx
mov edx, dword [eax + 0x14]
mov eax, dword [edx + esi + 4]
add edx, esi
mov dword [esp + 0x50], eax
movzx eax, byte [esp + 0xe]
cmp dword [edx + 4], ecx
cmovge ecx, eax
mov al, cl
mov ecx, dword [ebx + 0x18]
mov byte [esp + 0xe], al
mov byte [esp + 0xf], al
mov eax, edi
cmovge eax, dword [esp + 0x54]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
add eax, esi
mov esi, ecx
mov dword [esp + 0x74], eax
mov eax, dword [edx]
mov edx, dword [esp + 0x74]
cmp eax, dword [edx]
jne 0x41466c
mov eax, dword [esp + 0x50]
and eax, 0xfffffff
cmp eax, dword [edx + 4]
je 0x4146b5
mov al, byte [esp + 0xf]
mov ecx, esi
mov dl, al
mov byte [esp + 0xe], dl
test al, al
jne 0x4146b9
mov eax, dword [esp + 0x54]
cmp eax, edi
jge 0x4146ab
mov esi, dword [esp + 0x10]
lea ecx, [eax + eax*4]
mov edx, edi
shl ecx, 2
sub edx, eax
mov eax, dword [ebx + 0x18]
lea ecx, [ecx + 0x14]
mov eax, dword [eax + esi*4]
mov eax, dword [eax + 0x14]
or dword [eax + ecx - 0x10], 0x3ffff
sub edx, 1
jne 0x414692
mov ecx, dword [ebx + 0x18]
mov byte [esp + 0xe], 1
jmp 0x4146bd
mov dl, byte [esp + 0xe]
test dl, dl
je 0x4146d2
mov eax, dword [esp + 0x10]
mov eax, dword [ecx + eax*4]
lea ecx, [edi + edi*4]
mov eax, dword [eax + 0x14]
or dword [eax + ecx*4 + 4], 0x3ffff
inc edi
cmp edi, dword [ebx + 0x12c]
jl 0x414606
mov eax, dword [ebx + 0x18]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
mov dword [esp + 0x18], 0
mov ecx, dword [eax + esi*4]
movzx eax, word [edi]
cmp ax, word [ecx]
mov word [ecx], ax
mov ecx, dword [ebx + 0x74]
setne dl
cmp dword [ebx + 0x12c], 0
mov eax, dword [ebx + 0x78]
mov dword [esp + 0x54], edx
mov dword [esp + 0x20], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], eax
jle 0x414d44
xor edi, edi
mov dword [esp + 0x40], edi
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
mov edx, dword [esi + edi + 4]
mov dword [esp + 0x34], edx
mov edx, dword [ebx + 0x18]
mov esi, dword [edi + esi]
mov dword [esp + 0x50], esi
mov edx, dword [edx + eax*4]
mov eax, 1
mov edx, dword [edx + 0x14]
mov edx, dword [edx + edi + 4]
xor edx, dword [esp + 0x34]
test edx, 0x400000
mov edx, dword [esp + 0x54]
movzx edx, dl
cmovne edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x34]
xor edx, dword [esp + 0x44]
test dword [ebx + 0x104c], edx
mov edx, dword [esp + 0x14]
setne byte [esp + 0xe]
cmp byte [edx + edi + 8], cl
jne 0x4147f2
cmp byte [edi + edx + 9], ch
jne 0x4147f2
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x7a]
cmp byte [edi + ebx + 0xa], dl
mov ebx, dword [esp + 0x2c]
jne 0x4147f2
mov ebx, dword [esp + 0x14]
mov dl, byte [esp + 0x7b]
cmp byte [edi + ebx + 0xb], dl
mov ebx, dword [esp + 0x2c]
jne 0x4147f2
mov edx, dword [esp + 0x14]
cmp byte [edi + edx + 0xc], al
jne 0x4147f2
cmp byte [edi + edx + 0xd], ah
jne 0x4147f2
mov eax, dword [esp + 0x14]
mov dl, byte [esp + 0x7e]
cmp byte [edi + eax + 0xe], dl
mov eax, dword [esp + 0x30]
jne 0x4147f2
mov eax, dword [esp + 0x14]
mov dl, byte [esp + 0x7f]
cmp byte [edi + eax + 0xf], dl
mov eax, dword [esp + 0x30]
je 0x4147f7
mov byte [esp + 0xe], 1
cmp esi, 0x23ba
jb 0x414807
cmp esi, 0x23bd
jbe 0x414821
cmp dword [esp + 0x18], 0
jle 0x414826
mov edx, dword [esp + 0x14]
mov edx, dword [edi + edx - 0x14]
sub edx, 0x23ba
cmp edx, 3
ja 0x414826
mov byte [esp + 0xe], 1
mov edx, esi
and edx, 0xfffffc00
cmp edx, 0xd800
je 0x41484a
mov edx, esi
and edx, 0xfffffe00
cmp edx, 0xdc00
je 0x41484a
xor edx, edx
jmp 0x414852
mov edx, esi
and edx, 0xffffff00
movzx esi, byte [esp + 0xe]
mov ecx, 1
cmp edx, dword [esp + 0x64]
mov edx, esi
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x24]
cmovne edx, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x18]
cmp dword [esi + 0x10], 0
jne 0x414889
test edx, edx
jle 0x41488e
cmp dword [esi - 4], 0
je 0x41488e
mov byte [esp + 0x48], 1
cmp dword [esi], 0xdffe
je 0x4148ad
cmp edx, 2
jl 0x4148b2
cmp dword [esi - 0x14], 0xdfff
jne 0x4148b2
cmp dword [esi - 0x28], 0xdffe
jne 0x4148b2
mov byte [esp + 0x48], 1
mov edx, dword [ebx + 0x106c]
cmp byte [edx], 0
jne 0x414947
cmp byte [esp + 0x54], 0
jne 0x414947
mov esi, dword [esp + 0x10]
mov edx, dword [ebx + 0x18]
mov edx, dword [edx + esi*4]
mov esi, dword [edx + 0x14]
mov edx, dword [esp + 0x50]
cmp dword [esi + edi], edx
jne 0x414932
mov edx, dword [esi + edi + 4]
and edx, 0xfffffff
cmp edx, dword [esp + 0x34]
jne 0x414932
cmp byte [esi + edi + 8], cl
jne 0x414932
cmp byte [esi + edi + 9], ch
jne 0x414932
mov dl, byte [esp + 0x7a]
cmp byte [esi + edi + 0xa], dl
jne 0x414932
mov dl, byte [esp + 0x7b]
cmp byte [esi + edi + 0xb], dl
jne 0x414932
cmp byte [esi + edi + 0xc], al
jne 0x414932
cmp byte [esi + edi + 0xd], ah
jne 0x414932
mov dl, byte [esp + 0x7e]
cmp byte [esi + edi + 0xe], dl
jne 0x414932
mov dl, byte [esp + 0x7f]
cmp byte [esi + edi + 0xf], dl
je 0x414a0d
mov edx, dword [esp + 0x20]
test dl, dl
jne 0x41494b
cmp dword [esp + 0x1c], 1
je 0x414a15
jmp 0x41494b
mov edx, dword [esp + 0x20]
cmp byte [esp + 0x48], 0
jne 0x414a11
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx + 0x18]
push dword [esp + 0x34]
push dword [esp + 0x54]
mov eax, dword [eax + ecx*4]
mov ecx, dword [eax + 0x14]
add ecx, edx
mov edx, dword [esp + 0x2c]
call fcn.0040ae60
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x74]
push 0
test al, al
mov byte [esp + 0x1b], al
movzx ecx, cl
mov eax, 1
push 2
push dword [esp + 0x2c]
cmove ecx, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x3c]
push 2
call fcn.00490080
mov ecx, dword [esp + 0x68]
mov edx, eax
add esp, 0x18
mov dword [esp + 0x28], edx
lea eax, [ecx - 0x10001]
cmp eax, 0xffffe
ja 0x414ae5
mov edx, dword [esp + 0x1c]
lea eax, [ecx - 0x10000]
mov edi, dword [esp + 0x28]
shr eax, 0xa
sub eax, 0x2800
mov word [edi + edx*2], ax
mov eax, ecx
mov ecx, edi
and eax, 0x3ff
mov edi, dword [esp + 0x3c]
sub eax, 0x2400
mov word [ecx + edx*2 + 2], ax
add edx, 2
mov dword [esp + 0x1c], edx
jmp 0x414af2
mov edx, dword [esp + 0x20]
test dl, dl
jne 0x414a1c
cmp byte [esp + 0x4c], 0
je 0x414a45
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x414a45
push eax
push ecx
push dword [esp + 0x4c]
mov ecx, ebx
push edx
push dword [esp + 0x38]
mov edx, dword [esp + 0x7c]
push dword [esp + 0x24]
push dword [esp + 0x74]
call fcn.00413f40
add esp, 0x1c
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], 0
mov edi, dword [edi + eax + 8]
mov esi, dword [edx + eax + 0xc]
mov eax, ecx
and eax, 0xfffffc00
mov dword [esp + 0x3c], edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x78], edi
mov dword [esp + 0x7c], esi
cmp eax, 0xd800
je 0x414aa7
mov eax, ecx
and eax, 0xfffffe00
cmp eax, 0xdc00
je 0x414aa7
mov dword [esp + 0x64], 0
jmp 0x414ab2
mov eax, ecx
and eax, 0xffffff00
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [ebx + 0x106c]
movzx eax, al
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x20]
cmp byte [ecx], 0
mov ecx, dword [esp + 0x4c]
movzx eax, al
cmovne ecx, eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x20], al
jmp 0x414962
mov eax, dword [esp + 0x1c]
mov word [edx + eax*2], cx
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x10], 0
je 0x414bf5
mov edi, dword [esp + 0x2c]
mov ecx, eax
mov esi, dword [esp + 0x1c]
nop word [eax + eax]
mov eax, dword [ecx + 0x10]
lea eax, [eax + eax*4]
mov ebx, dword [ecx + eax*4]
lea ecx, [ecx + eax*4]
mov eax, ebx
mov dword [esp + 0x74], ecx
and eax, 0xffffff00
cmp eax, 0xd800
je 0x414b5f
cmp eax, 0xd900
je 0x414b4c
cmp eax, 0xda00
jne 0x414b70
mov eax, dword [edi + 0x106c]
movzx ecx, bl
movzx ebx, word [eax + ecx*2 + 0xc]
jmp 0x414b70
mov eax, dword [edi + 0x106c]
movzx ecx, bl
movzx ebx, word [eax + ecx*2 + 0x60c]
jmp 0x414b70
mov eax, dword [edi + 0x106c]
movzx ecx, bl
movzx ebx, word [eax + ecx*2 + 0x20c]
mov ecx, dword [esp + 0x28]
lea edx, [esp + 0x6c]
push 0
push 2
push esi
push 2
call fcn.00490080
mov edx, eax
movzx ecx, bx
lea eax, [ebx - 0x10001]
mov dword [esp + 0x38], edx
add esp, 0x10
cmp eax, 0xffffe
ja 0x414bc6
add ebx, 0xffff0000
and ecx, 0x3ff
shr ebx, 0xa
sub ecx, 0x2400
sub ebx, 0x2800
mov word [edx + esi*2], bx
mov word [edx + esi*2 + 2], cx
add esi, 2
jmp 0x414bcb
mov word [edx + esi*2], cx
inc esi
mov ecx, dword [esp + 0x74]
cmp dword [ecx + 0x10], 0
jne 0x414b10
or dword [esp + 0x44], 0x80000000
mov edi, dword [esp + 0x3c]
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x30]
cmp byte [esp + 0xf], 0
jne 0x414c74
mov ecx, dword [ebx + 0x18]
mov edx, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4]
call fcn.0040af00
mov eax, dword [ebx + 0x18]
add esp, 4
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x50]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 0x14]
mov dword [ecx + eax], edx
mov eax, dword [ebx + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + edx*4]
mov edx, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov dword [eax + ecx + 4], edx
mov eax, dword [ebx + 0x18]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
mov dword [eax + ecx + 8], edi
mov edi, ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + edi + 0xc], esi
cmp dword [esp + 0x5c], ecx
jne 0x414c80
mov eax, dword [ebx + 0x18]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x14]
or dword [eax + edi + 4], 0x80000000
jmp 0x414c80
mov edi, dword [esp + 0x40]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
test dword [esp + 0x34], 0x400000
je 0x414d0f
mov eax, dword [esp + 0x24]
inc ecx
add eax, 0x14
mov dword [esp + 0x18], ecx
add edi, 0x14
mov dword [esp + 0x50], eax
mov dword [esp + 0x24], eax
cmp ecx, dword [ebx + 0x12c]
jge 0x414d0f
cmp edx, dword [esp + 0x58]
jne 0x414cd4
cmp ecx, dword [esp + 0x38]
jne 0x414cd4
push 0x1921
push str.C:Usersomahr_source_reposputty_caccode_terminal_terminal.c
push str.__i__our_curs_y__j__our_curs_x_
call fcn.004a3dca
mov edx, dword [esp + 0x1c]
add esp, 0xc
mov eax, dword [ebx + 0x18]
mov esi, dword [eax + edx*4]
mov edx, dword [esp + 0x50]
mov ecx, dword [esi + 0x14]
add ecx, edi
call fcn.0040aef0
mov ecx, dword [esp + 0x20]
test al, al
push dword [esp + 0x50]
movzx edx, cl
mov eax, 1
cmove edx, eax
mov ecx, esi
mov byte [esp + 0x24], dl
mov edx, dword [esp + 0x1c]
call fcn.0040af00
add esp, 4
mov eax, dword [esp + 0x18]
add edi, 0x14
add dword [esp + 0x24], 0x14
inc eax
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], edi
cmp eax, dword [ebx + 0x12c]
jl 0x414732
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x68]
test dl, dl
je 0x414d6c
mov edx, dword [esp + 0x1c]
test edx, edx
jle 0x414d6c
push eax
push ecx
push dword [esp + 0x4c]
mov ecx, ebx
push edx
push dword [esp + 0x38]
mov edx, edi
push esi
push dword [esp + 0x74]
call fcn.00413f40
add esp, 0x1c
mov ecx, edi
call fcn.0040ac70
inc esi
mov dword [esp + 0x10], esi
cmp esi, dword [ebx + 0x128]
jl 0x414230
mov ecx, dword [esp + 0x14]
call fcn.00490070
mov ecx, dword [esp + 0x28]
call fcn.00490070
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret