Function at 0x4058d0
Capabilities:
Acquire debug privileges

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x183c
call fcn.004091b0
mov eax, dword [0x448598]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
or ebx, 0xffffffff
push esi
push 0x43769c
mov dword [ebp - 0x180c], ebx
mov dword [ebp - 0x181c], eax
mov byte [ebp - 0x1805], al
call fcn.00405240
add esp, 4
call fcn.00405760
call fcn.00407820
mov ecx, 0x447c78
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405920
sub ecx, edx
sar ecx, 1
mov dword [0x447eb8], ecx
mov ecx, 0x447ebc
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405940
sub ecx, edx
sar ecx, 1
mov dword [0x4480fc], ecx
mov ecx, 0x448100
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405960
sub ecx, edx
sar ecx, 1
mov dword [0x448340], ecx
mov ecx, 0x448344
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405980
sub ecx, edx
sar ecx, 1
mov dword [0x448584], ecx
mov ecx, 0x4477f0
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4059a0
sub ecx, edx
sar ecx, 1
mov dword [0x447a30], ecx
mov ecx, 0x447a34
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4059c0
sub ecx, edx
sar ecx, 1
mov dword [0x447c74], ecx
call fcn.00406f90
mov esi, eax
test esi, esi
je 0x405a68
push 0x4376c0
call fcn.004051b0
add esp, 4
cmp esi, 0xc0000022
je 0x405a46
cmp esi, 0xc000009a
je 0x405a24
push esi
push 0x437770
call fcn.004051b0
add esp, 8
mov eax, 2
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040917c
mov esp, ebp
pop ebp
ret
push 0x437730
call fcn.004051b0
add esp, 4
mov eax, 2
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040917c
mov esp, ebp
pop ebp
ret
push 0x43770c
call fcn.004051b0
add esp, 4
mov eax, 2
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040917c
mov esp, ebp
pop ebp
ret
push edi
call fcn.00406e90
mov esi, dword [0x455a80]
push esi
call fcn.00406f00
mov edi, eax
add esp, 4
sub edi, 1
js 0x405ae3
lea eax, [ebp - 0x1810]
push eax
push edi
push esi
call fcn.00406f10
mov ecx, dword [ebp - 0x1810]
add esp, 0xc
movzx eax, word [ecx + 0x12]
shl eax, 7
cmp word [eax + 0x44da80], 0
jne 0x405ad8
xor eax, eax
push eax
mov word [ebp - 0x1604], ax
lea eax, [ebp - 0x1604]
push 0x800
push eax
movzx eax, word [ecx + 0x12]
shl eax, 7
push ecx
add eax, 0x44da80
push eax
call fcn.004067b0
add esp, 0x14
sub edi, 1
mov esi, dword [0x455a80]
jns 0x405a84
xor edi, edi
push esi
mov dword [ebp - 0x1828], edi
call fcn.00406f00
add esp, 4
test eax, eax
je 0x406496
nop dword [eax]
lea eax, [ebp - 0x1810]
push eax
push edi
push esi
call fcn.00406f10
mov edi, dword [ebp - 0x1810]
add esp, 0xc
mov eax, dword [edi + 4]
cmp eax, ebx
je 0x405c59
lea ecx, [ebp - 0x204]
push ecx
push 0
push eax
call fcn.00407240
push 0x200
lea eax, [ebp - 0x604]
push eax
push 0x200
lea eax, [ebp - 0x1804]
push eax
push dword [edi + 4]
call fcn.004073f0
lea edi, [ebp - 0x604]
add esp, 0x20
add edi, 0xfffffffe
nop dword [eax]
mov ax, word [edi + 2]
lea edi, [edi + 2]
test ax, ax
jne 0x405b60
mov eax, dword [0x43777c]
lea edx, [ebp - 0x1804]
mov dword [edi], eax
mov esi, edx
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x405b80
lea edi, [ebp - 0x604]
sub edx, esi
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x405b96
mov ecx, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [0x44949e], al
jne 0x405c48
cmp dword [0x4495a0], 0
jne 0x405c48
cmp byte [0x4495a5], al
jne 0x405c48
cmp byte [0x4495a7], al
je 0x405c09
mov ecx, 0x44a420
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405be1
sub ecx, edx
lea eax, [ebp - 0x204]
sar ecx, 1
push ecx
push eax
push 0x44a420
call fcn.004144d9
add esp, 0xc
test eax, eax
jne 0x405c48
cmp word [0x44949c], 0
jne 0x405c41
push 0x437780
call fcn.004051b0
lea eax, [ebp - 0x604]
push eax
mov eax, dword [ebp - 0x1810]
push dword [eax + 4]
lea eax, [ebp - 0x204]
push eax
push 0x437820
call fcn.004051b0
add esp, 0x14
mov byte [ebp - 0x1805], 1
mov edi, dword [ebp - 0x1810]
mov ebx, dword [edi + 4]
mov eax, ebx
mov dword [ebp - 0x180c], ebx
cmp byte [0x4495a7], 0
je 0x405ca3
mov ecx, dword [0x4495ac]
test ecx, ecx
jne 0x405cad
mov ecx, 0x44a420
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405c74
sub ecx, edx
lea eax, [ebp - 0x204]
sar ecx, 1
push ecx
push eax
push 0x44a420
call fcn.004144d9
add esp, 0xc
test eax, eax
jne 0x40646c
mov eax, dword [edi + 4]
mov ecx, dword [0x4495ac]
test ecx, ecx
je 0x405cb5
cmp ecx, eax
jne 0x40646c
cmp byte [str.d_j_], 0
je 0x405ce0
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push 0x42fecc
push eax
call fcn.00413481
add esp, 8
test eax, eax
jne 0x40646c
cmp byte [0x44949e], 0
movzx esi, word [edi + 0x12]
je 0x405cf9
inc dword [esi*4 + 0x4494a0]
jmp 0x40646c
cmp byte [0x449498], 0
jne 0x405d3b
mov eax, esi
shl eax, 7
push 0x436b84
lea edi, [eax + 0x44da80]
push edi
call fcn.00413481
add esp, 8
test eax, eax
je 0x405d35
push 0x436b78
push edi
call fcn.00413481
add esp, 8
test eax, eax
jne 0x40646c
mov edi, dword [ebp - 0x1810]
xor eax, eax
mov word [ebp - 0x1604], ax
lea eax, [ebp - 0x1824]
push eax
push 0x800
lea eax, [ebp - 0x1604]
push eax
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push edi
push eax
call fcn.004067b0
add esp, 0x14
cmp byte [0x449498], 0
jne 0x405d84
cmp word [ebp - 0x1604], 0
je 0x40646c
shl esi, 7
push 0x437840
lea esi, [esi + 0x44da80]
push esi
call fcn.00413481
add esp, 8
test eax, eax
lea eax, [ebp - 0x1604]
push eax
jne 0x405dad
call fcn.004076d0
jmp 0x405db2
call fcn.004075e0
add esp, 4
cmp byte [0x449498], 0
jne 0x405df6
push 7
lea eax, [ebp - 0x1604]
push 0x437848
push eax
call fcn.004144d9
add esp, 0xc
test eax, eax
jne 0x405df6
push 0xb
lea eax, [ebp - 0x1604]
push 0x437858
push eax
call fcn.004144d9
add esp, 0xc
test eax, eax
jne 0x40646c
cmp byte [0x44949b], 0
je 0x405e23
push 0x100
lea eax, [ebp - 0x404]
push eax
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push eax
push dword [edi + 0xc]
call fcn.00403c60
add esp, 0x10
cmp byte [0x4495a5], 0
je 0x40617c
mov eax, dword [0x4495a8]
mov dword [ebp - 0x1820], eax
test eax, eax
je 0x40646c
nop dword [eax]
nop word [eax + eax]
mov ebx, dword [eax]
lea ecx, [ebp - 0x1604]
mov dword [ebp - 0x1814], ebx
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405e61
sub ecx, edx
mov edx, ebx
sar ecx, 1
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x405e75
sub edx, esi
sar edx, 1
cmp ecx, edx
jb 0x406160
mov edx, dword [ebp - 0x1814]
xor ebx, ebx
mov dword [ebp - 0x1818], ebx
lea esi, [edx + 2]
nop dword [eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x405ea0
sub edx, esi
sar edx, 1
sub ecx, edx
inc ecx
test ecx, ecx
jle 0x406160
lea esi, [ebp - 0x1604]
mov ecx, dword [ebp - 0x1814]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x405ed0
sub ecx, edx
sar ecx, 1
push ecx
push dword [ebp - 0x1814]
push esi
call fcn.004144d9
add esp, 0xc
test eax, eax
jne 0x406104
cmp byte [0x44949f], 0
mov ax, word [0x44949c]
mov byte [ebp - 0x1805], 1
je 0x40601c
test ax, ax
je 0x405fb6
cmp byte [0x44949a], 0
jne 0x405f47
movzx eax, ax
push eax
push eax
push eax
push eax
push eax
push eax
push eax
push 0x437870
mov byte [0x44949a], 1
call fcn.004051b0
mov ax, word [0x44949c]
add esp, 0x20
mov bl, byte [0x44949b]
movzx edx, ax
test bl, bl
jne 0x405f59
mov edx, 0x20
movzx ecx, ax
test bl, bl
lea eax, [ebp - 0x404]
mov ebx, 0x436994
cmove eax, ebx
push eax
push edx
lea eax, [ebp - 0x1604]
push eax
push ecx
push dword [edi + 8]
lea eax, [ebp - 0x604]
push ecx
push eax
movzx eax, word [edi + 0x12]
push ecx
shl eax, 7
add eax, 0x44da80
push eax
push ecx
push dword [ebp - 0x180c]
lea eax, [ebp - 0x204]
push ecx
push eax
push 0x4378f0
call fcn.004051b0
mov ebx, dword [ebp - 0x1818]
add esp, 0x38
jmp 0x406104
mov cl, byte [0x44949b]
lea eax, [ebp - 0x404]
test cl, cl
mov edx, 0x436994
cmove eax, edx
push eax
mov eax, 0x437930
cmove eax, edx
push eax
mov eax, 0x437944
cmove eax, edx
push eax
lea eax, [ebp - 0x1604]
push eax
push dword [edi + 8]
lea eax, [ebp - 0x604]
push eax
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push eax
push dword [ebp - 0x180c]
lea eax, [ebp - 0x204]
push eax
push 0x437958
call fcn.004051b0
add esp, 0x28
jmp 0x406104
test ax, ax
je 0x4060b3
cmp byte [0x44949a], 0
jne 0x40604f
movzx eax, ax
push eax
push eax
push eax
push eax
push 0x4379c0
mov byte [0x44949a], 1
call fcn.004051b0
mov ax, word [0x44949c]
add esp, 0x14
mov bl, byte [0x44949b]
movzx edx, ax
test bl, bl
jne 0x406061
mov edx, 0x20
movzx ecx, ax
test bl, bl
lea eax, [ebp - 0x404]
mov ebx, 0x436994
cmove eax, ebx
push eax
push edx
lea eax, [ebp - 0x1604]
push eax
movzx eax, word [edi + 0x12]
push ecx
push dword [edi + 8]
shl eax, 7
push ecx
add eax, 0x44da80
push eax
push ecx
push dword [ebp - 0x180c]
lea eax, [ebp - 0x204]
push ecx
push eax
push 0x437a04
call fcn.004051b0
mov ebx, dword [ebp - 0x1818]
add esp, 0x30
jmp 0x406104
mov cl, byte [0x44949b]
lea eax, [ebp - 0x404]
test cl, cl
mov edx, 0x436994
cmove eax, edx
push eax
mov eax, 0x437944
cmove eax, edx
push eax
lea eax, [ebp - 0x1604]
push eax
push dword [edi + 8]
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push eax
push dword [ebp - 0x180c]
lea eax, [ebp - 0x204]
push eax
push 0x437a40
call fcn.004051b0
add esp, 0x20
inc ebx
lea eax, [ebp - 0x1604]
add esi, 2
mov dword [ebp - 0x1818], ebx
mov dword [ebp - 0x182c], esi
lea edx, [eax + 2]
nop dword [eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x406120
sub eax, edx
mov edx, dword [ebp - 0x1814]
sar eax, 1
lea esi, [edx + 2]
nop dword [eax + eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x406140
sub edx, esi
mov esi, dword [ebp - 0x182c]
sar edx, 1
sub eax, edx
inc eax
cmp ebx, eax
jl 0x405ec0
mov eax, dword [ebp - 0x1820]
mov eax, dword [eax + 4]
mov dword [ebp - 0x1820], eax
test eax, eax
jne 0x405e50
jmp 0x40646c
mov eax, dword [0x4495a0]
test eax, eax
je 0x40619d
cmp dword [edi + 8], eax
jne 0x40646c
mov eax, dword [edi + 4]
cmp eax, dword [0x4495ac]
jne 0x40646c
push 0x436b78
push esi
call fcn.00413481
add esp, 8
test eax, eax
jne 0x406346
cmp dword [0x448588], 0xffffffff
je 0x406346
mov ax, word [0x44949c]
test ax, ax
je 0x4062c4
cmp byte [0x44949a], 0
jne 0x406220
mov bl, byte [0x44949b]
mov byte [0x44949a], 1
movzx edx, ax
test bl, bl
jne 0x4061f1
mov edx, 0x20
movzx ecx, ax
test bl, bl
mov eax, 0x437a94
mov esi, 0x436994
cmove eax, esi
push eax
push edx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push 0x437ab0
call fcn.004051b0
mov ax, word [0x44949c]
add esp, 0x24
jmp 0x406225
mov esi, 0x436994
mov bl, byte [0x44949b]
movzx ecx, ax
test bl, bl
jne 0x406237
mov ecx, 0x20
movzx edx, ax
test bl, bl
lea eax, [ebp - 0x404]
mov ebx, 0x44
cmove eax, esi
push eax
push ecx
mov ecx, dword [ebp - 0x1824]
lea eax, [ebp - 0x1604]
push eax
push edx
test cl, 4
mov eax, 0x2d
cmovne eax, ebx
test cl, 2
push eax
mov ebx, 0x57
mov eax, 0x2d
cmovne eax, ebx
mov ebx, dword [ebp - 0x180c]
push eax
test cl, 1
mov eax, 0x2d
mov ecx, 0x52
cmovne eax, ecx
push eax
movzx eax, word [edi + 0x12]
push edx
shl eax, 7
add eax, 0x44da80
push eax
push edx
push dword [edi + 8]
lea eax, [ebp - 0x604]
push edx
push eax
push edx
push ebx
push edx
lea eax, [ebp - 0x204]
push eax
push 0x437b28
call fcn.004051b0
add esp, 0x48
jmp 0x406458
mov cl, byte [0x44949b]
lea eax, [ebp - 0x404]
test cl, cl
mov esi, 0x436994
mov ecx, dword [ebp - 0x1824]
mov edx, 0x44
cmove eax, esi
push eax
mov eax, 0x437944
cmove eax, esi
test cl, 4
push eax
lea eax, [ebp - 0x1604]
push eax
mov eax, 0x2d
cmovne eax, edx
test cl, 2
push eax
mov edx, 0x57
mov eax, 0x2d
cmovne eax, edx
test cl, 1
push eax
mov ecx, 0x52
mov eax, 0x2d
cmovne eax, ecx
push eax
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push eax
push dword [edi + 8]
push 0x437b78
call fcn.004051b0
add esp, 0x24
jmp 0x406452
mov ax, word [0x44949c]
test ax, ax
je 0x40640e
cmp byte [0x44949a], 0
jne 0x4063a6
mov bl, byte [0x44949b]
mov byte [0x44949a], 1
movzx edx, ax
test bl, bl
jne 0x406377
mov edx, 0x20
movzx ecx, ax
test bl, bl
mov eax, 0x437a94
mov esi, 0x436994
cmove eax, esi
push eax
push edx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push 0x437ab0
call fcn.004051b0
mov ax, word [0x44949c]
add esp, 0x24
jmp 0x4063ab
mov esi, 0x436994
mov bl, byte [0x44949b]
movzx edx, ax
test bl, bl
jne 0x4063bd
mov edx, 0x20
movzx ecx, ax
test bl, bl
mov ebx, dword [ebp - 0x180c]
lea eax, [ebp - 0x404]
cmove eax, esi
push eax
push edx
lea eax, [ebp - 0x1604]
push eax
movzx eax, word [edi + 0x12]
push ecx
push ecx
shl eax, 7
add eax, 0x44da80
push eax
push ecx
push dword [edi + 8]
lea eax, [ebp - 0x604]
push ecx
push eax
push ecx
push ebx
push ecx
lea eax, [ebp - 0x204]
push eax
push 0x437bb8
call fcn.004051b0
add esp, 0x3c
jmp 0x406458
mov cl, byte [0x44949b]
lea eax, [ebp - 0x404]
test cl, cl
mov edx, 0x436994
cmove eax, edx
push eax
mov eax, 0x437bfc
cmove eax, edx
push eax
lea eax, [ebp - 0x1604]
push eax
movzx eax, word [edi + 0x12]
shl eax, 7
add eax, 0x44da80
push eax
push dword [edi + 8]
push 0x437c10
call fcn.004051b0
add esp, 0x18
mov ebx, dword [ebp - 0x180c]
mov eax, dword [0x4495a0]
mov byte [ebp - 0x1805], 1
test eax, eax
jne 0x406539
mov edi, dword [ebp - 0x1828]
mov esi, dword [0x455a80]
inc edi
push esi
mov dword [ebp - 0x1828], edi
call fcn.00406f00
mov ebx, dword [ebp - 0x180c]
add esp, 4
cmp edi, eax
jb 0x405b00
cmp byte [0x44949e], 0
je 0x406623
push 0x437d0c
call fcn.004051b0
add esp, 4
or edi, 0xffffffff
mov ebx, 0x44da80
xor esi, esi
nop word [eax + eax]
cmp dword [esi*4 + 0x4494a0], 0
je 0x4064e9
cmp edi, 0xffffffff
je 0x4064e7
mov eax, edi
shl eax, 7
add eax, 0x44da80
push eax
push ebx
call fcn.00413481
add esp, 8
test eax, eax
jns 0x4064e9
mov edi, esi
inc esi
sub ebx, 0xffffff80
cmp esi, 0x40
jb 0x4064c0
cmp edi, 0xffffffff
je 0x40660f
push dword [edi*4 + 0x4494a0]
lea esi, [edi*4 + 0x4494a0]
shl edi, 7
add edi, 0x44da80
push edi
push 0x437d38
call fcn.004051b0
mov eax, dword [ebp - 0x181c]
add esp, 0xc
add eax, dword [esi]
mov dword [ebp - 0x181c], eax
mov dword [esi], 0
jmp 0x4064b0
cmp byte [0x4495a4], 0
jne 0x40656c
push ebx
lea ecx, [ebp - 0x204]
push ecx
push eax
push 0x437c38
call fcn.004051b0
push 1
call fcn.00412882
push eax
call fcn.00412c16
add esp, 0x18
call fcn.0041ac3a
jmp 0x40656e
mov al, 0x59
movsx eax, al
push eax
call fcn.004143fb
add esp, 4
cmp eax, 0x59
jne 0x4065ee
mov eax, dword [0x4495a0]
push 0
mov dword [ebp - 0x1830], eax
mov dword [ebp - 0x183c], ebx
mov eax, dword [edi]
push 0
mov dword [ebp - 0x1838], eax
lea eax, [ebp - 0x183c]
push 0x10
push eax
push 0x83350004
call fcn.00405730
add esp, 0x14
test eax, eax
jne 0x4065e7
push 0x437c88
call fcn.004051b0
mov esi, dword [0x42f0f4]
add esp, 4
call esi
push eax
call fcn.00407fd0
add esp, 4
call esi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040917c
mov esp, ebp
pop ebp
ret
mov eax, 0x437cb8
jmp 0x4065f3
mov eax, 0x437cdc
push eax
call fcn.004051b0
add esp, 4
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040917c
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x181c]
push eax
push 0x437d54
call fcn.004051b0
add esp, 8
cmp byte [ebp - 0x1805], 0
jne 0x4065fc
cmp byte [0x44949e], 0
jne 0x4065fc
push 0x437d7c
call fcn.004051b0
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
mov eax, 1
pop edi
pop esi
pop ebx
call fcn.0040917c
mov esp, ebp
pop ebp
ret