Function at 0x43c4b0
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x58bbd4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x12c
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x5c]
call fcn.0048efe0
xor ebp, ebp
push 0x10
mov dword [esp + 0x148], ebp
call fcn.00557770
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, ebp
mov byte [esp + 0x144], 1
je 0x43c506
mov ecx, eax
call fcn.00464500
jmp 0x43c508
xor eax, eax
push ebp
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x150]
push ecx
mov ecx, esp
mov dword [esp + 0x20], esp
push eax
mov byte [esp + 0x150], 0
call fcn.00556e93
lea ecx, [esp + 0x80]
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.004645a0
mov edi, eax
mov edx, dword [edi + 4]
lea eax, [edi + 8]
push eax
lea ecx, [esp + 0x68]
mov byte [esp + 0x148], 2
mov dword [esp + 0x64], edx
call fcn.00557257
mov ecx, dword [edi + 0xc]
lea eax, [edi + 0x14]
mov dword [esp + 0x68], ecx
mov edx, dword [edi + 0x10]
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x70], edx
call fcn.00557257
add edi, 0x18
lea ecx, [esp + 0x74]
push edi
call fcn.00557257
lea ecx, [esp + 0x78]
mov byte [esp + 0x144], 0
call fcn.0048f080
mov eax, dword [esp + 0x60]
mov ecx, dword [esi + 0x2c]
mov ebx, 5
cmp eax, ebx
je 0x43c5b1
cmp ecx, ebp
je 0x43c5a9
mov edx, dword [ecx]
push 1
call dword [edx]
mov dword [esi + 0x2c], ebp
jmp 0x43ddd0
call fcn.00465aa0
mov edi, dword [eax]
cmp edi, ebp
mov dword [esp + 0x34], edi
je 0x43c5c6
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x1c], ebp
mov ecx, dword [edi]
lea edx, [esp + 0x10]
push edx
push edi
mov byte [esp + 0x14c], bl
call dword [ecx + 0x34]
cmp eax, ebp
jge 0x43c63b
mov ecx, dword [esi + 0x2c]
cmp ecx, ebp
je 0x43c5f1
mov eax, dword [ecx]
push 1
call dword [eax]
mov eax, dword [esp + 0x1c]
mov dword [esi + 0x2c], ebp
cmp eax, ebp
mov byte [esp + 0x144], 4
je 0x43c60a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
cmp eax, ebp
je 0x43c620
mov edx, dword [eax]
push eax
call dword [edx + 8]
cmp edi, ebp
mov byte [esp + 0x144], 0
je 0x43ddd0
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x43ddd0
mov dword [esp + 0x54], ebp
mov dword [esp + 0x2c], ebp
mov word [esp + 0x11c], bp
push 0x602204
lea ecx, [esp + 0x2c]
mov byte [esp + 0x148], 7
call fcn.0055718c
push 0x602204
lea ecx, [esp + 0x3c]
mov byte [esp + 0x148], 8
call fcn.0055718c
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 9
cmp eax, ebp
mov dword [esp + 0x24], ebp
mov dword [esp + 0x30], ebp
je 0x43d974
mov bl, 0x35
mov ecx, dword [eax]
lea edx, [esp + 0x54]
push edx
push eax
call dword [ecx + 0x28]
test eax, eax
jl 0x43da37
mov eax, dword [esp + 0x54]
dec eax
jne 0x43d89b
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x2c]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x28]
push eax
call fcn.005572ce
mov ecx, dword [esp + 0x28]
mov edi, str.project
mov ebp, ecx
mov dl, byte [ebp]
mov al, dl
cmp dl, byte [edi]
jne 0x43c700
test al, al
je 0x43c6fc
mov dl, byte [ebp + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x43c700
add ebp, 2
add edi, 2
test al, al
jne 0x43c6db
xor eax, eax
jmp 0x43c705
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43c998
push ecx
lea edi, [esi + 0x30]
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.name
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0x100]
push eax
call fcn.00467040
lea ebp, [edi + 0x44]
push eax
mov ecx, ebp
mov byte [esp + 0x148], 0xb
call fcn.00557257
lea ecx, [esp + 0xf8]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ebp
lea ecx, [esi + 0x24]
call fcn.00557257
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.homepath
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
lea ecx, [esp + 0x118]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [esi + 0x28]
mov byte [esp + 0x148], 0xd
call fcn.00557257
lea ecx, [esp + 0x114]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.output_folder
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x134]
push eax
push edx
call fcn.00467040
lea ebp, [edi + 0x58]
push eax
mov ecx, ebp
mov byte [esp + 0x148], 0xf
call fcn.00557257
lea ecx, [esp + 0x130]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.output_ext
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0x140]
push eax
call fcn.00467040
lea ecx, [edi + 0x5c]
push eax
mov byte [esp + 0x148], 0x11
call fcn.00557257
lea ecx, [esp + 0x138]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ebp
lea ecx, [esi + 0x98]
call fcn.00557257
lea eax, [edi + 0x5c]
lea ecx, [esi + 0x9c]
push eax
call fcn.00557257
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.example_xml
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
lea ecx, [esp + 0xb4]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [edi + 0x50]
mov byte [esp + 0x148], 0x13
call fcn.00557257
lea ecx, [esp + 0xb0]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.example_xsl
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [edi + 0x54]
mov byte [esp + 0x148], 0x15
call fcn.00557257
lea ecx, [esp + 0xf0]
mov byte [esp + 0x144], 9
call fcn.0055711e
mov eax, dword [esp + 0x10]
mov dword [esp + 0x24], edi
xor edi, edi
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], edi
mov ecx, dword [eax]
push edx
push eax
mov dword [esp + 0x38], edi
call dword [ecx + 0x34]
cmp eax, edi
jl 0x43dad1
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x43d89b
mov ecx, dword [eax]
push eax
mov edi, eax
call dword [ecx + 4]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x43d960
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x43d960
mov ebp, str.group
mov edi, ecx
mov dl, byte [edi]
mov al, dl
cmp dl, byte [ebp]
jne 0x43c9c4
test al, al
je 0x43c9c0
mov dl, byte [edi + 1]
mov al, dl
cmp dl, byte [ebp + 1]
jne 0x43c9c4
add edi, 2
add ebp, 2
test al, al
jne 0x43c99f
xor eax, eax
jmp 0x43c9c9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43cd22
push 0x60
mov dword [esp + 0x34], eax
call fcn.00557770
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov byte [esp + 0x144], 0x16
je 0x43c9fa
mov ecx, eax
call fcn.0043c1e0
mov edi, eax
jmp 0x43c9fc
xor edi, edi
push ecx
mov byte [esp + 0x148], 9
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.name
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xc0]
push eax
call fcn.00467040
lea ebp, [edi + 0x44]
push eax
mov ecx, ebp
mov byte [esp + 0x148], 0x18
call fcn.00557257
lea ecx, [esp + 0xb8]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.filter
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
lea ecx, [esp + 0x114]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [edi + 0x48]
mov byte [esp + 0x148], 0x1a
call fcn.00557257
lea ecx, [esp + 0x110]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.output_folder
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xc4]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [edi + 0x58]
mov byte [esp + 0x148], 0x1c
call fcn.00557257
lea ecx, [esp + 0xc0]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.output_ext
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xb0]
push eax
call fcn.00467040
push eax
lea ecx, [edi + 0x5c]
mov byte [esp + 0x148], 0x1e
call fcn.00557257
lea ecx, [esp + 0xa8]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.example_xml
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
lea ecx, [esp + 0xcc]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [edi + 0x50]
mov byte [esp + 0x148], 0x20
call fcn.00557257
lea ecx, [esp + 0xc8]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.example_xsl
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x130]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [edi + 0x54]
mov byte [esp + 0x148], 0x22
call fcn.00557257
lea ecx, [esp + 0x12c]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.description
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xd8]
push eax
call fcn.00467040
push eax
lea ecx, [edi + 0x4c]
mov byte [esp + 0x148], 0x24
call fcn.00557257
lea ecx, [esp + 0xd0]
mov byte [esp + 0x144], 9
call fcn.0055711e
mov ecx, dword [esp + 0x24]
push ebp
mov dword [edi + 0x40], ecx
lea ecx, [esp + 0x40]
mov dword [edi + 0x3c], esi
call fcn.00556e93
lea ecx, [esp + 0x3c]
mov byte [esp + 0x144], 0x25
call fcn.00557697
mov eax, dword [esp + 0x24]
test eax, eax
je 0x43cca5
mov edx, dword [esp + 0x3c]
lea ecx, [eax + 4]
push edx
jmp 0x43ccad
mov ecx, dword [esp + 0x3c]
push ecx
lea ecx, [esi + 0x34]
call fcn.005522c5
mov dword [eax], edi
mov eax, dword [esp + 0x10]
xor ebp, ebp
lea ecx, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x34]
cmp eax, ebp
jl 0x43db65
mov eax, dword [esp + 0x1c]
cmp eax, ebp
jne 0x43ccea
mov byte [esp + 0x144], 9
lea ecx, [esp + 0x3c]
jmp 0x43d896
mov edx, dword [eax]
mov dword [esp + 0x24], edi
push eax
mov edi, eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x43cd04
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x3c]
mov dword [esp + 0x10], edi
mov byte [esp + 0x144], 9
call fcn.0055711e
mov eax, dword [esp + 0x10]
jmp 0x43d966
mov ebp, str.file
mov edi, ecx
mov dl, byte [edi]
mov al, dl
cmp dl, byte [ebp]
jne 0x43cd4e
test al, al
je 0x43cd4a
mov dl, byte [edi + 1]
mov al, dl
cmp dl, byte [ebp + 1]
jne 0x43cd4e
add edi, 2
add ebp, 2
test al, al
jne 0x43cd29
xor eax, eax
jmp 0x43cd53
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43d081
push 0x28
call fcn.00557770
add esp, 4
test eax, eax
je 0x43cd74
mov ecx, eax
call fcn.0043c370
mov edi, eax
jmp 0x43cd76
xor edi, edi
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.path
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0x108]
push eax
call fcn.00467040
lea ebp, [edi + 0xc]
push eax
mov ecx, ebp
mov byte [esp + 0x148], 0x27
call fcn.00557257
lea ecx, [esp + 0x100]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push ebp
call fcn.00556e93
lea ecx, [esp + 0xdc]
push ecx
call fcn.00423520
add esp, 8
push eax
lea ecx, [edi + 4]
mov byte [esp + 0x148], 0x28
call fcn.00557257
lea ecx, [esp + 0xd8]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.output_folder
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0x11c]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [edi + 0x1c]
mov byte [esp + 0x148], 0x2a
call fcn.00557257
lea ecx, [esp + 0x118]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.output_ext
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xe8]
push eax
call fcn.00467040
push eax
lea ecx, [edi + 0x20]
mov byte [esp + 0x148], 0x2c
call fcn.00557257
lea ecx, [esp + 0xe0]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.example_xml
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
lea ecx, [esp + 0x10c]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [edi + 0x14]
mov byte [esp + 0x148], 0x2e
call fcn.00557257
lea ecx, [esp + 0x108]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.example_xsl
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xec]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [edi + 0x18]
mov byte [esp + 0x148], 0x30
call fcn.00557257
lea ecx, [esp + 0xe8]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.description
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], 9
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0x13c]
push eax
call fcn.00467040
push eax
lea ecx, [edi + 0x10]
mov byte [esp + 0x148], 0x32
call fcn.00557257
lea ecx, [esp + 0x134]
mov byte [esp + 0x144], 9
call fcn.0055711e
push ebp
lea ecx, [esp + 0x48]
call fcn.00556e93
lea ecx, [esp + 0x44]
mov byte [esp + 0x144], 0x33
call fcn.00557697
mov eax, dword [esp + 0x24]
test eax, eax
je 0x43cffa
mov dword [edi + 8], eax
mov ecx, dword [esp + 0x44]
push ecx
lea ecx, [eax + 0x20]
jmp 0x43d008
lea edx, [esi + 0x30]
lea ecx, [esi + 0x34]
mov dword [edi + 8], edx
mov eax, dword [esp + 0x44]
push eax
call fcn.005522c5
mov dword [eax], edi
mov eax, dword [esp + 0x10]
xor ebp, ebp
lea edx, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x34]
cmp eax, ebp
jl 0x43dc0c
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x43d06c
mov ecx, dword [eax]
mov dword [esp + 0x30], edi
push eax
mov edi, eax
call dword [ecx + 4]
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x43d04e
mov edx, dword [eax]
push eax
call dword [edx + 8]
lea ecx, [esp + 0x44]
mov dword [esp + 0x10], edi
mov byte [esp + 0x144], 9
call fcn.0055711e
mov eax, dword [esp + 0x10]
jmp 0x43d966
mov dword [esp + 0x30], ebp
mov byte [esp + 0x144], 9
lea ecx, [esp + 0x44]
jmp 0x43d896
mov ebp, str.open
mov edi, ecx
mov cl, byte [edi]
mov dl, byte [ebp]
mov al, cl
cmp cl, dl
jne 0x43d0b1
test al, al
je 0x43d0ad
mov dl, byte [edi + 1]
mov cl, byte [ebp + 1]
mov al, dl
cmp dl, cl
jne 0x43d0b1
add edi, 2
add ebp, 2
test al, al
jne 0x43d088
xor eax, eax
jmp 0x43d0b6
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x43d89b
mov eax, dword [esp + 0x30]
test eax, eax
je 0x43d89b
mov eax, dword [0x5fd774]
mov dword [esp + 0x78], eax
push 0x602204
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x34
call fcn.0055718c
push ecx
mov byte [esp + 0x148], bl
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.caret_pos_x
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
lea ecx, [esp + 0xb0]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x37
call fcn.00557257
lea ecx, [esp + 0xac]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [edx - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x7c], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.caret_pos_y
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xbc]
push eax
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x39
call fcn.00557257
lea ecx, [esp + 0xb4]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x14]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x80], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.sel_start_x
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xc0]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x3b
call fcn.00557257
lea ecx, [esp + 0xbc]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [eax - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x84], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.sel_start_y
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
lea ecx, [esp + 0xc8]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x3d
call fcn.00557257
lea ecx, [esp + 0xc4]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [edx - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x88], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.sel_end_x
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xd4]
push eax
call fcn.00467040
mov byte [esp + 0x144], 0x3f
push eax
lea ecx, [esp + 0x18]
call fcn.00557257
lea ecx, [esp + 0xcc]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x14]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x8c], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.sel_end_y
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xd8]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x41
call fcn.00557257
lea ecx, [esp + 0xd4]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [eax - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x90], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.window_x1
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
lea ecx, [esp + 0xe0]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x43
call fcn.00557257
lea ecx, [esp + 0xdc]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [edx - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
push 0xffffffffffffffff
lea ecx, [esp + 0x18]
mov dword [esp + 0x98], eax
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.window_x2
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0xec]
push eax
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x45
call fcn.00557257
lea ecx, [esp + 0xe4]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x14]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x9c], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.window_y1
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
lea edx, [esp + 0xf0]
push eax
push edx
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x47
call fcn.00557257
lea ecx, [esp + 0xec]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov eax, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [eax - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x98], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.window_y2
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
lea ecx, [esp + 0xf8]
push eax
push ecx
mov ecx, dword [esi + 0x2c]
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x49
call fcn.00557257
lea ecx, [esp + 0xf4]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov edx, dword [esp + 0x14]
lea ecx, [esp + 0x14]
mov eax, dword [edx - 8]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0xa0], eax
push 0xffffffffffffffff
call fcn.0055759d
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push str.state
call fcn.0055718c
lea ecx, [esp + 0x14]
mov byte [esp + 0x148], bl
call fcn.004986b0
mov ecx, dword [esi + 0x2c]
push eax
lea eax, [esp + 0x104]
push eax
call fcn.00467040
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x148], 0x4b
call fcn.00557257
lea ecx, [esp + 0xfc]
mov byte [esp + 0x144], bl
call fcn.0055711e
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 8]
lea ecx, [esp + 0x14]
push eax
call fcn.0055754e
push eax
call fcn.0053cbe6
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0xa4], eax
push 0xffffffffffffffff
call fcn.0055759d
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x104]
push edx
call fcn.00441570
push eax
lea ecx, [esp + 0x7c]
mov byte [esp + 0x148], 0x4c
call fcn.00557257
lea ecx, [esp + 0x104]
mov byte [esp + 0x144], bl
call fcn.0055711e
lea eax, [esp + 0x78]
lea ecx, [esp + 0x50]
push eax
call fcn.00556e93
lea ecx, [esp + 0x50]
mov byte [esp + 0x144], 0x4d
call fcn.00557697
mov eax, dword [esp + 0x50]
lea ebp, [esi + 4]
mov edi, dword [ebp + 8]
push eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x110], eax
mov dword [esp + 0x5c], edi
call fcn.0054e5d1
xor edx, edx
div edi
mov edi, dword [ebp + 4]
test edi, edi
mov dword [esp + 0x4c], edx
je 0x43d781
mov ecx, edx
mov eax, dword [edi + ecx*4]
test eax, eax
mov dword [esp + 0x40], eax
je 0x43d77d
mov edx, dword [esp + 0x10c]
mov eax, dword [eax + 8]
mov dword [esp + 0x48], edx
mov cl, byte [eax]
mov edx, dword [esp + 0x48]
mov byte [esp + 0x23], cl
cmp cl, byte [edx]
jne 0x43d75c
test cl, cl
je 0x43d758
mov cl, byte [eax + 1]
mov byte [esp + 0x23], cl
cmp cl, byte [edx + 1]
jne 0x43d75c
add eax, 2
add edx, 2
test cl, cl
mov dword [esp + 0x48], edx
jne 0x43d72c
xor eax, eax
jmp 0x43d761
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
mov eax, dword [esp + 0x40]
je 0x43d775
mov eax, dword [eax]
test eax, eax
mov dword [esp + 0x40], eax
jne 0x43d71e
jmp 0x43d77d
test eax, eax
mov dword [esp + 0x40], eax
jne 0x43d7e8
test edi, edi
jne 0x43d7b5
mov ecx, dword [esp + 0x58]
lea edi, [ecx*4]
push edi
call fcn.00557770
mov edx, eax
mov ecx, edi
mov dword [ebp + 4], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [esp + 0x58]
mov dword [ebp + 8], eax
mov ecx, ebp
call fcn.00442cb0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x18]
mov edi, eax
push edx
mov dword [esp + 0x44], edi
mov dword [edi + 4], ecx
lea ecx, [edi + 8]
call fcn.005572a7
mov ecx, dword [ebp + 4]
mov eax, dword [esp + 0x4c]
mov edx, dword [ecx + eax*4]
mov dword [edi], edx
mov ecx, dword [ebp + 4]
mov dword [ecx + eax*4], edi
mov edx, dword [esp + 0x40]
lea eax, [esp + 0x78]
push eax
lea edi, [edx + 0xc]
mov ecx, edi
call fcn.00557257
mov ecx, dword [esp + 0x7c]
mov byte [esp + 0x144], bl
mov dword [edi + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [edi + 8], edx
mov eax, dword [esp + 0x84]
mov dword [edi + 0xc], eax
mov ecx, dword [esp + 0x88]
mov dword [edi + 0x10], ecx
mov edx, dword [esp + 0x8c]
mov dword [edi + 0x14], edx
mov eax, dword [esp + 0x90]
mov dword [edi + 0x18], eax
mov edx, dword [esp + 0x94]
lea ecx, [edi + 0x1c]
mov dword [edi + 0x1c], edx
mov eax, dword [esp + 0x98]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x9c]
mov dword [ecx + 8], edx
mov eax, dword [esp + 0xa0]
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0xa4]
mov dword [edi + 0x2c], ecx
lea ecx, [esp + 0x50]
call fcn.0055711e
lea ecx, [esp + 0x14]
mov byte [esp + 0x144], 0x34
call fcn.0055711e
mov byte [esp + 0x144], 9
lea ecx, [esp + 0x78]
call fcn.0055711e
mov eax, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov edx, dword [eax]
lea ecx, [esp + 0x1c]
push ecx
push eax
call dword [edx + 0x40]
cmp eax, ebp
jl 0x43dcad
mov eax, dword [esp + 0x1c]
cmp eax, ebp
jne 0x43d946
cmp dword [esp + 0x24], ebp
je 0x43d946
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x2c]
cmp eax, ebp
jl 0x43dd43
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x43dd43
mov ecx, dword [esp + 0x30]
mov edx, dword [eax]
cmp ecx, ebp
mov edi, eax
push eax
je 0x43d91b
call dword [edx + 4]
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x43d90b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ebp
jmp 0x43d8a5
call dword [edx + 4]
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x43d92c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [esp + 0x24]
mov eax, edi
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ebp
mov ecx, dword [edx + 0x40]
mov dword [esp + 0x24], ecx
jmp 0x43d8a5
cmp eax, ebp
mov edi, eax
je 0x43d952
mov edx, dword [eax]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
cmp eax, ebp
je 0x43d960
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, edi
mov dword [esp + 0x10], eax
test eax, eax
jne 0x43c695
mov edi, dword [esp + 0x34]
xor ebp, ebp
mov ecx, dword [esi + 0x2c]
cmp ecx, ebp
je 0x43d981
mov edx, dword [ecx]
push 1
call dword [edx]
lea ecx, [esp + 0x38]
mov dword [esi + 0x2c], ebp
mov dword [esi + 0xa0], ebp
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea eax, [esp + 0x11c]
push eax
call dword [0x5e9060]
mov ecx, dword [esp + 0x2c]
push ecx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
cmp eax, ebp
je 0x43d9db
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
cmp eax, ebp
je 0x43d9f1
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp edi, ebp
mov byte [esp + 0x144], 0
je 0x43da03
mov edx, dword [edi]
push edi
call dword [edx + 8]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x144], 0xffffffff
call fcn.0048f080
mov eax, 1
mov ecx, dword [esp + 0x13c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x138
ret 4
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x43da44
mov edx, dword [ecx]
push 1
call dword [edx]
lea ecx, [esp + 0x38]
mov dword [esi + 0x2c], 0
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea eax, [esp + 0x11c]
push eax
call dword [0x5e9060]
mov ecx, dword [esp + 0x2c]
push ecx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
test eax, eax
je 0x43da9c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
test eax, eax
je 0x43dab2
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x144], 0
test eax, eax
je 0x43ddd0
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x43ddd0
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x43dade
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x38]
mov dword [esi + 0x2c], 0
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea ecx, [esp + 0x11c]
push ecx
call dword [0x5e9060]
mov edx, dword [esp + 0x2c]
push edx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
test eax, eax
je 0x43db36
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
test eax, eax
je 0x43db4c
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x144], 0
test eax, eax
je 0x43ddd0
jmp 0x43ddca
mov ecx, dword [esi + 0x2c]
cmp ecx, ebp
je 0x43db72
mov edx, dword [ecx]
push 1
call dword [edx]
lea ecx, [esp + 0x3c]
mov dword [esi + 0x2c], ebp
mov byte [esp + 0x144], 9
call fcn.0055711e
lea ecx, [esp + 0x38]
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea eax, [esp + 0x11c]
push eax
call dword [0x5e9060]
mov ecx, dword [esp + 0x2c]
push ecx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
cmp eax, ebp
je 0x43dbd7
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
cmp eax, ebp
je 0x43dbed
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x144], 0
cmp eax, ebp
je 0x43ddd0
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x43ddd0
mov ecx, dword [esi + 0x2c]
cmp ecx, ebp
je 0x43dc19
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x44]
mov dword [esi + 0x2c], ebp
mov byte [esp + 0x144], 9
call fcn.0055711e
lea ecx, [esp + 0x38]
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea ecx, [esp + 0x11c]
push ecx
call dword [0x5e9060]
mov edx, dword [esp + 0x2c]
push edx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
cmp eax, ebp
je 0x43dc7e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
cmp eax, ebp
je 0x43dc94
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x144], 0
cmp eax, ebp
je 0x43ddd0
jmp 0x43ddca
mov ecx, dword [esi + 0x2c]
cmp ecx, ebp
je 0x43dcba
mov edx, dword [ecx]
push 1
call dword [edx]
lea ecx, [esp + 0x38]
mov dword [esi + 0x2c], ebp
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea eax, [esp + 0x11c]
push eax
call dword [0x5e9060]
mov ecx, dword [esp + 0x2c]
push ecx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
cmp eax, ebp
je 0x43dd0e
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
cmp eax, ebp
je 0x43dd24
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x144], 0
cmp eax, ebp
je 0x43ddd0
mov edx, dword [eax]
push eax
call dword [edx + 8]
jmp 0x43ddd0
mov ecx, dword [esi + 0x2c]
cmp ecx, ebp
je 0x43dd50
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [esp + 0x38]
mov dword [esi + 0x2c], ebp
mov byte [esp + 0x144], 8
call fcn.0055711e
lea ecx, [esp + 0x28]
mov byte [esp + 0x144], 7
call fcn.0055711e
lea ecx, [esp + 0x11c]
push ecx
call dword [0x5e9060]
mov edx, dword [esp + 0x2c]
push edx
call dword [0x5e905c]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x144], 4
cmp eax, ebp
je 0x43dda4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [esp + 0x10]
mov byte [esp + 0x144], 3
cmp eax, ebp
je 0x43ddba
mov edx, dword [eax]
push eax
call dword [edx + 8]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x144], 0
cmp eax, ebp
je 0x43ddd0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x144], 0xffffffff
call fcn.0048f080
xor eax, eax
jmp 0x43da1c