Function at 0x511d99
Capabilities:
Contain obfuscated stackstrings
Read .ini file

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1b28
call fcn.0054cd40
mov dword [ebp - 0x1954], 0
lea eax, [ebp - 0x660]
push eax
call fcn.0055ebb0
mov dword [ebp - 0x65c], 0
cmp dword [ebp + 0x14], 0
je 0x511dde
mov ecx, dword [ebp + 0x10]
push ecx
push 0
mov edx, dword [ebp + 0xc]
push edx
call fcn.0054bfb0
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x4764], 0x16
jl 0x511e00
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4764], 0x1b
jg 0x511e00
mov dword [ebp - 0x65c], 1
cmp dword [ebp - 0x65c], 0
je 0x511e13
mov dword [ebp - 0x1954], 2
push 0x10b8
push 0
lea edx, [ebp - 0x1950]
push edx
call fcn.0054bfb0
add esp, 0xc
push 0x200
push 0
lea eax, [ebp - 0x888]
push eax
call fcn.0054bfb0
add esp, 0xc
push 0
push 0x200
lea ecx, [ebp - 0x888]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.0050060b
add esp, 0x10
lea eax, [ebp - 0x1950]
push eax
lea ecx, [ebp - 0x888]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004db12c
add esp, 0xc
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2f780], 0
je 0x511e90
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x25b4], 0
jne 0x511e90
jmp 0x511f19
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x7b6]
mov byte [edx + 0x1a0], cl
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x7b7]
mov byte [edx + 0x1a1], cl
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x7b8]
mov byte [edx + 0x1a2], cl
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov cl, byte [eax + 0x7b9]
mov byte [edx + 0x1a3], cl
lea ecx, [ebp - 0x660]
call fcn.00406c70
sub eax, 0x7c7
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a4], al
lea ecx, [ebp - 0x660]
call fcn.00406c90
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x1a5], al
lea ecx, [ebp - 0x660]
call fcn.00406cb0
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a6], al
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004f8f44
add esp, 8
mov byte [ebp - 0x678], 0x12
mov byte [ebp - 0x677], 1
mov byte [ebp - 0x676], 0
mov byte [ebp - 0x675], 2
mov byte [ebp - 0x674], 0
mov byte [ebp - 0x673], 0
mov byte [ebp - 0x672], 0
mov byte [ebp - 0x671], 0x40
mov byte [ebp - 0x670], 0xc
mov byte [ebp - 0x66f], 9
mov byte [ebp - 0x66e], 0
mov byte [ebp - 0x66d], 0x10
mov byte [ebp - 0x66c], 0
mov byte [ebp - 0x66b], 0x11
mov byte [ebp - 0x66a], 1
mov byte [ebp - 0x669], 2
mov byte [ebp - 0x668], 3
mov byte [ebp - 0x667], 1
mov byte [ebp - 0x19b0], 0x12
mov byte [ebp - 0x19af], 1
mov byte [ebp - 0x19ae], 0
mov byte [ebp - 0x19ad], 2
mov byte [ebp - 0x19ac], 0
mov byte [ebp - 0x19ab], 0
mov byte [ebp - 0x19aa], 0
mov byte [ebp - 0x19a9], 0x40
mov byte [ebp - 0x19a8], 0xc
mov byte [ebp - 0x19a7], 9
mov byte [ebp - 0x19a6], 0
mov byte [ebp - 0x19a5], 0x10
mov byte [ebp - 0x19a4], 0
mov byte [ebp - 0x19a3], 0x11
mov byte [ebp - 0x19a2], 1
mov byte [ebp - 0x19a1], 2
mov byte [ebp - 0x19a0], 0
mov byte [ebp - 0x199f], 1
mov edx, dword [ebp + 8]
movsx eax, byte [edx + 0x40c4]
test eax, eax
jne 0x51204a
push 0x12
lea ecx, [ebp - 0x19b0]
push ecx
mov edx, dword [ebp + 0xc]
push edx
call fcn.0054c980
add esp, 0xc
jmp 0x51205f
push 0x12
lea eax, [ebp - 0x678]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
call fcn.0054c980
add esp, 0xc
mov edx, dword [ebp + 8]
add edx, 0x291e4
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 8], al
mov edx, dword [ebp + 8]
add edx, 0x291e4
push edx
call fcn.005353c2
add esp, 4
sar eax, 8
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 9], al
mov edx, dword [ebp + 8]
add edx, 0x291ea
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0xa], al
mov edx, dword [ebp + 8]
add edx, 0x291ea
push edx
call fcn.005353c2
add esp, 4
sar eax, 8
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0xb], al
mov edx, dword [ebp + 8]
add edx, 0x291f0
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0xc], al
mov edx, dword [ebp + 8]
add edx, 0x291f0
push edx
call fcn.005353c2
add esp, 4
sar eax, 8
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0xd], al
mov byte [ebp - 0x24], 9
mov byte [ebp - 0x23], 2
mov byte [ebp - 0x22], 0x20
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x20], 1
mov byte [ebp - 0x1f], 1
mov byte [ebp - 0x1e], 0
mov byte [ebp - 0x1d], 0x80
mov byte [ebp - 0x1c], 0x32
mov byte [ebp - 0x1b], 9
mov byte [ebp - 0x1a], 4
mov byte [ebp - 0x19], 0
mov byte [ebp - 0x18], 0
mov byte [ebp - 0x17], 2
mov byte [ebp - 0x16], 8
mov byte [ebp - 0x15], 6
mov byte [ebp - 0x14], 0x50
mov byte [ebp - 0x13], 0
mov byte [ebp - 0x12], 7
mov byte [ebp - 0x11], 5
mov byte [ebp - 0x10], 0x81
mov byte [ebp - 0xf], 2
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xd], 2
mov byte [ebp - 0xc], 0xff
mov byte [ebp - 0xb], 7
mov byte [ebp - 0xa], 5
mov byte [ebp - 9], 2
mov byte [ebp - 8], 2
mov byte [ebp - 7], 0
mov byte [ebp - 6], 2
mov byte [ebp - 5], 0xff
mov byte [ebp - 0x1998], 9
mov byte [ebp - 0x1997], 2
mov byte [ebp - 0x1996], 0x20
mov byte [ebp - 0x1995], 0
mov byte [ebp - 0x1994], 1
mov byte [ebp - 0x1993], 1
mov byte [ebp - 0x1992], 0
mov byte [ebp - 0x1991], 0x80
mov byte [ebp - 0x1990], 0x32
mov byte [ebp - 0x198f], 9
mov byte [ebp - 0x198e], 4
mov byte [ebp - 0x198d], 0
mov byte [ebp - 0x198c], 0
mov byte [ebp - 0x198b], 2
mov byte [ebp - 0x198a], 8
mov byte [ebp - 0x1989], 6
mov byte [ebp - 0x1988], 0x50
mov byte [ebp - 0x1987], 0
mov byte [ebp - 0x1986], 7
mov byte [ebp - 0x1985], 5
mov byte [ebp - 0x1984], 1
mov byte [ebp - 0x1983], 2
mov byte [ebp - 0x1982], 0
mov byte [ebp - 0x1981], 2
mov byte [ebp - 0x1980], 0
mov byte [ebp - 0x197f], 7
mov byte [ebp - 0x197e], 5
mov byte [ebp - 0x197d], 0x82
mov byte [ebp - 0x197c], 2
mov byte [ebp - 0x197b], 0
mov byte [ebp - 0x197a], 2
mov byte [ebp - 0x1979], 0
cmp dword [ebp + 0x14], 0
je 0x5122a5
cmp dword [ebp - 0x65c], 0
je 0x512290
push 0x20
lea edx, [ebp - 0x1998]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x12
push eax
call fcn.0054c980
add esp, 0xc
jmp 0x5122a5
push 0x20
lea ecx, [ebp - 0x24]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 0x12
push edx
call fcn.0054c980
add esp, 0xc
xor eax, eax
test eax, eax
je 0x5122b4
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x21], 1
jmp 0x5122bb
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x21], 6
mov byte [ebp - 4], 4
mov byte [ebp - 3], 3
mov byte [ebp - 2], 9
mov byte [ebp - 1], 4
push 4
lea eax, [ebp - 4]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x32
push ecx
call fcn.0054c980
add esp, 0xc
mov edx, dword [ebp + 8]
add edx, 0x291f6
push edx
call fcn.0054c3e0
add esp, 4
mov dword [ebp - 0x890], eax
mov eax, dword [ebp - 0x890]
lea ecx, [eax + eax + 2]
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x36], cl
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x37], 3
mov dword [ebp - 0x894], 0
jmp 0x51232a
mov ecx, dword [ebp - 0x894]
add ecx, 1
mov dword [ebp - 0x894], ecx
mov edx, dword [ebp - 0x894]
cmp edx, dword [ebp - 0x890]
jge 0x51236c
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x894]
movsx ecx, byte [eax + 0x291f6]
test ecx, ecx
jne 0x51234e
jmp 0x51236c
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
mov eax, dword [ebp - 0x894]
mov ecx, dword [ebp + 0xc]
mov dl, byte [edx + 0x291f6]
mov byte [ecx + eax*2 + 0x38], dl
jmp 0x51231b
mov eax, dword [ebp + 8]
add eax, 0x2921a
push eax
call fcn.0054c3e0
add esp, 4
mov dword [ebp - 0x890], eax
mov ecx, dword [ebp - 0x890]
lea edx, [ecx + ecx + 2]
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x74], dl
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x75], 3
mov dword [ebp - 0x894], 0
jmp 0x5123b5
mov edx, dword [ebp - 0x894]
add edx, 1
mov dword [ebp - 0x894], edx
mov eax, dword [ebp - 0x894]
cmp eax, dword [ebp - 0x890]
jge 0x5123f7
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x894]
movsx edx, byte [ecx + 0x2921a]
test edx, edx
jne 0x5123d9
jmp 0x5123f7
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x894]
mov ecx, dword [ebp - 0x894]
mov edx, dword [ebp + 0xc]
mov al, byte [eax + 0x2921a]
mov byte [edx + ecx*2 + 0x76], al
jmp 0x5123a6
mov ecx, dword [ebp + 8]
movsx edx, byte [ecx + 0x40c4]
test edx, edx
je 0x51249f
mov eax, dword [ebp + 8]
add eax, 0x40c4
push eax
call fcn.0054c3e0
add esp, 4
mov dword [ebp - 0x890], eax
mov ecx, dword [ebp - 0x890]
lea edx, [ecx + ecx + 2]
mov eax, dword [ebp + 0xc]
mov byte [eax + 0xb2], dl
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0xb3], 3
mov dword [ebp - 0x894], 0
jmp 0x512458
mov edx, dword [ebp - 0x894]
add edx, 1
mov dword [ebp - 0x894], edx
mov eax, dword [ebp - 0x894]
cmp eax, dword [ebp - 0x890]
jge 0x51249f
mov ecx, dword [ebp + 8]
add ecx, dword [ebp - 0x894]
movsx edx, byte [ecx + 0x40c4]
test edx, edx
je 0x51249b
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x894]
mov ecx, dword [ebp - 0x894]
mov edx, dword [ebp + 0xc]
mov al, byte [eax + 0x40c4]
mov byte [edx + ecx*2 + 0xb4], al
jmp 0x51249d
jmp 0x51249f
jmp 0x512449
mov byte [ebp - 0x34], 0xa
mov byte [ebp - 0x33], 6
mov byte [ebp - 0x32], 0
mov byte [ebp - 0x31], 2
mov byte [ebp - 0x30], 0
mov byte [ebp - 0x2f], 0
mov byte [ebp - 0x2e], 0
mov byte [ebp - 0x2d], 0x40
mov byte [ebp - 0x2c], 1
mov byte [ebp - 0x2b], 0
cmp dword [ebp + 0x14], 0
je 0x5124e5
push 0xa
lea ecx, [ebp - 0x34]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 0x100
push edx
call fcn.0054c980
add esp, 0xc
mov byte [ebp - 0x1978], 9
mov byte [ebp - 0x1977], 7
mov byte [ebp - 0x1976], 0x20
mov byte [ebp - 0x1975], 0
mov byte [ebp - 0x1974], 1
mov byte [ebp - 0x1973], 1
mov byte [ebp - 0x1972], 0
mov byte [ebp - 0x1971], 0x80
mov byte [ebp - 0x1970], 0x32
mov byte [ebp - 0x196f], 9
mov byte [ebp - 0x196e], 4
mov byte [ebp - 0x196d], 0
mov byte [ebp - 0x196c], 0
mov byte [ebp - 0x196b], 2
mov byte [ebp - 0x196a], 8
mov byte [ebp - 0x1969], 6
mov byte [ebp - 0x1968], 0x50
mov byte [ebp - 0x1967], 0
mov byte [ebp - 0x1966], 7
mov byte [ebp - 0x1965], 5
mov byte [ebp - 0x1964], 0x81
mov byte [ebp - 0x1963], 2
mov byte [ebp - 0x1962], 0x40
mov byte [ebp - 0x1961], 0
mov byte [ebp - 0x1960], 0xff
mov byte [ebp - 0x195f], 7
mov byte [ebp - 0x195e], 5
mov byte [ebp - 0x195d], 2
mov byte [ebp - 0x195c], 2
mov byte [ebp - 0x195b], 0x40
mov byte [ebp - 0x195a], 0
mov byte [ebp - 0x1959], 0xff
cmp dword [ebp + 0x14], 0
je 0x5125e6
push 0x20
lea eax, [ebp - 0x1978]
push eax
mov ecx, dword [ebp + 0xc]
add ecx, 0x10a
push ecx
call fcn.0054c980
add esp, 0xc
cmp dword [ebp - 0x65c], 0
je 0x5126d0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2942c]
mov dword [ebp - 0x1b1c], eax
cmp dword [ebp - 0x1b1c], 4
ja case.default.0x512615
mov ecx, dword [ebp - 0x1b1c]
jmp dword [ecx*4 + 0x5133e7]
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0x32
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0x32
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x36e], 0xd
jmp 0x5126cb
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0x64
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0x64
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x36e], 0x19
jmp 0x5126cb
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0x96
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0x96
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x36e], 0x26
jmp 0x5126cb
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0xc8
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0xc8
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x36e], 0x32
jmp 0x5126cb
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0xfa
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0xfa
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x36e], 0x3f
jmp 0x5126cb
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0xfa
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0xfa
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x36e], 0x3f
jmp 0x512765
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2942c]
mov dword [ebp - 0x1b20], eax
cmp dword [ebp - 0x1b20], 4
ja case.default.0x5126ee
mov ecx, dword [ebp - 0x1b20]
jmp dword [ecx*4 + 0x5133fb]
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0x32
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0x32
jmp 0x512765
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x1a], 0x64
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x112], 0x64
jmp 0x512765
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x1a], 0x96
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x112], 0x96
jmp 0x512765
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x1a], 0xc8
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x112], 0xc8
jmp 0x512765
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x1a], 0xfa
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x112], 0xfa
jmp 0x512765
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x1a], 0x32
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x112], 0x32
mov byte [ebp - 0x658], 0
mov byte [ebp - 0x657], 0x80
mov byte [ebp - 0x656], 4
mov byte [ebp - 0x655], 2
mov byte [ebp - 0x654], 0x1f
mov byte [ebp - 0x653], 0x73
mov byte [ebp - 0x652], 0x6d
mov byte [ebp - 0x651], 0x69
mov byte [ebp - 0x650], 0x20
mov byte [ebp - 0x64f], 0x20
mov byte [ebp - 0x64e], 0x20
mov byte [ebp - 0x64d], 0x20
mov byte [ebp - 0x64c], 0x20
mov byte [ebp - 0x64b], 0x20
mov byte [ebp - 0x64a], 0x20
mov byte [ebp - 0x649], 0x20
mov byte [ebp - 0x648], 0x20
mov byte [ebp - 0x647], 0x20
mov byte [ebp - 0x646], 0x20
mov byte [ebp - 0x645], 0x20
mov byte [ebp - 0x644], 0x20
mov byte [ebp - 0x643], 0x20
mov byte [ebp - 0x642], 0x20
mov byte [ebp - 0x641], 0x20
mov byte [ebp - 0x640], 0x20
mov byte [ebp - 0x63f], 0x20
mov byte [ebp - 0x63e], 0x20
mov byte [ebp - 0x63d], 0x20
mov byte [ebp - 0x63c], 0x20
mov byte [ebp - 0x63b], 0x20
mov byte [ebp - 0x63a], 0x20
mov byte [ebp - 0x639], 0x20
mov byte [ebp - 0x638], 0x20
mov byte [ebp - 0x637], 0x20
mov byte [ebp - 0x636], 0x20
mov byte [ebp - 0x635], 0x20
cmp dword [ebp - 0x65c], 0
je 0x512871
mov byte [ebp - 0x656], 6
push 0x24
lea edx, [ebp - 0x658]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x12a
push eax
call fcn.0054c980
add esp, 0xc
mov dword [ebp - 0x894], 0
jmp 0x5128a6
mov ecx, dword [ebp - 0x894]
add ecx, 1
mov dword [ebp - 0x894], ecx
cmp dword [ebp - 0x894], 8
jge 0x5128e5
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
movsx eax, byte [edx + 0x292cc]
test eax, eax
jne 0x5128c5
jmp 0x5128e5
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x894]
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
mov al, byte [edx + 0x292cc]
mov byte [ecx + 0x132], al
jmp 0x512897
mov dword [ebp - 0x894], 0
jmp 0x512900
mov ecx, dword [ebp - 0x894]
add ecx, 1
mov dword [ebp - 0x894], ecx
cmp dword [ebp - 0x894], 0x10
jge 0x51293f
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
movsx eax, byte [edx + 0x292dc]
test eax, eax
jne 0x51291f
jmp 0x51293f
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x894]
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
mov al, byte [edx + 0x292dc]
mov byte [ecx + 0x13a], al
jmp 0x5128f1
mov dword [ebp - 0x894], 0
jmp 0x51295a
mov ecx, dword [ebp - 0x894]
add ecx, 1
mov dword [ebp - 0x894], ecx
cmp dword [ebp - 0x894], 4
jge 0x512999
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
movsx eax, byte [edx + 0x291f0]
test eax, eax
jne 0x512979
jmp 0x512999
mov ecx, dword [ebp + 0xc]
add ecx, dword [ebp - 0x894]
mov edx, dword [ebp + 8]
add edx, dword [ebp - 0x894]
mov al, byte [edx + 0x291f0]
mov byte [ecx + 0x14a], al
jmp 0x51294b
push 0x30
push 0
mov ecx, dword [ebp + 0xc]
add ecx, 0x160
push ecx
call fcn.0054bfb0
add esp, 0xc
push 8
mov edx, dword [ebp + 8]
add edx, 0x4458
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x160
push eax
call fcn.0054c980
add esp, 0xc
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x28a44]
add edx, 7
mov dword [ebp - 0x28], edx
push 1
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax + 0x4458]
push edx
mov eax, dword [ebp + 0xc]
add eax, 0x167
push eax
call fcn.0054c980
add esp, 0xc
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x2f798], 1
jne 0x512a14
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x165], 6
jmp 0x512a1e
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x165], 5
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x2b3c], 0
je 0x512b3c
push pe_nt_image_headers32
push 0
lea edx, [ebp - 0x1ab4]
push edx
call fcn.0054bfb0
add esp, 0xc
lea eax, [ebp - 0x1ab4]
push eax
call fcn.0053534c
add esp, 4
push 0x5b3948
lea ecx, [ebp - 0x1ab4]
push ecx
call fcn.0054bed0
add esp, 8
push 0x60
push 0
lea edx, [ebp - 0x1b14]
push edx
call fcn.0054bfb0
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x154]
push ecx
push str.ENDHEAD_d
lea edx, [ebp - 0x1b14]
push edx
call fcn.0054c45b
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x154]
push ecx
push str.ENDSECTOR_d
lea edx, [ebp - 0x1af4]
push edx
call fcn.0054c45b
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x154]
push ecx
push str.ENDCYLINDER_d
lea edx, [ebp - 0x1ad4]
push edx
call fcn.0054c45b
add esp, 0xc
lea eax, [ebp - 0x1ab4]
push eax
push 0
lea ecx, [ebp - 0x1b14]
push ecx
push 0x5b3980
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x680], eax
lea edx, [ebp - 0x1ab4]
push edx
push 0
lea eax, [ebp - 0x1af4]
push eax
push 0x5b3988
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x1958], eax
lea ecx, [ebp - 0x1ab4]
push ecx
push 0
lea edx, [ebp - 0x1ad4]
push edx
push str.EndInfo
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x154]
mov dword [ebp - 0x1b24], ecx
cmp dword [ebp - 0x1b24], 0x200
jg 0x512b9b
cmp dword [ebp - 0x1b24], 0x200
je 0x512cd0
mov edx, dword [ebp - 0x1b24]
sub edx, 0x20
mov dword [ebp - 0x1b24], edx
cmp dword [ebp - 0x1b24], 0xe0
ja case.0x512b94.4
mov ecx, dword [ebp - 0x1b24]
xor eax, eax
mov al, byte [ecx + 0x513423]
jmp dword [eax*4 + 0x51340f]
cmp dword [ebp - 0x1b24], 0x400
je 0x512d10
cmp dword [ebp - 0x1b24], 0x800
je 0x512d50
cmp dword [ebp - 0x1b24], 0x1000
je 0x512d8d
jmp case.0x512b94.4
mov dword [ebp - 0x680], 4
mov dword [ebp - 0x1958], 0x20
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 8
mov dword [ebp - 0x1958], 0x20
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 8
mov dword [ebp - 0x1958], 0x20
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 0x10
mov dword [ebp - 0x1958], 0x20
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 0x20
mov dword [ebp - 0x1958], 0x3f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 0x40
mov dword [ebp - 0x1958], 0x3f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 0x80
mov dword [ebp - 0x1958], 0x3f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 0xff
mov dword [ebp - 0x1958], 0x3f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x154]
sub eax, 1
shl eax, 0xa
shl eax, 1
mov ecx, dword [ebp - 0x680]
imul ecx, dword [ebp - 0x1958]
cdq
idiv ecx
mov dword [ebp - 0x67c], eax
jmp 0x512de8
mov dword [ebp - 0x680], 0xff
mov dword [ebp - 0x1958], 0x3f
mov dword [ebp - 0x67c], 0x3ff
mov edx, dword [ebp + 0xc]
mov al, byte [ebp - 0x680]
mov byte [edx + 0x168], al
mov ecx, dword [ebp + 0xc]
mov dl, byte [ebp - 0x1958]
mov byte [ecx + 0x169], dl
mov eax, dword [ebp - 0x67c]
sar eax, 8
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x16a], al
mov edx, dword [ebp - 0x67c]
and edx, 0xff
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x16b], dl
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov al, byte [edx + 0x2ae0]
mov byte [ecx + 0x16c], al
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov al, byte [edx + 0x2ae4]
mov byte [ecx + 0x16d], al
mov ecx, dword [ebp - 0x1954]
add ecx, 8
mov dword [ebp - 0x28], ecx
push 9
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp + 8]
lea ecx, [eax + edx + 0x4458]
push ecx
mov edx, dword [ebp + 0xc]
add edx, 0x16e
push edx
call fcn.0054c980
add esp, 0xc
mov dword [ebp - 0x684], 0xffffffff
mov eax, dword [ebp + 8]
cmp dword [eax + 0x2ef74], 0
je 0x5131b0
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x4764], 0x14
je 0x512eca
mov edx, dword [ebp + 8]
cmp dword [edx + 0x4764], 0x16
jl 0x5131b0
mov eax, dword [ebp + 8]
cmp dword [eax + 0x4764], 0x1b
jg 0x5131b0
push 0x600
push 0
lea ecx, [ebp - 0x634]
push ecx
call fcn.0054bfb0
add esp, 0xc
push 0x600
lea edx, [ebp - 0x634]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.00506151
add esp, 0xc
mov dword [ebp - 0x199c], eax
mov ecx, dword [ebp - 0x4e2]
and ecx, 0xff
shl ecx, 8
mov edx, dword [ebp - 0x4e1]
and edx, 0xff
and edx, 0xff
add ecx, edx
mov dword [ebp - 0x19b4], ecx
mov eax, dword [ebp - 0x4c8]
and eax, 0xff
shl eax, 8
mov ecx, dword [ebp - 0x4c7]
and ecx, 0xff
and ecx, 0xff
add eax, ecx
mov dword [ebp - 0x88c], eax
mov edx, dword [ebp - 0x4c2]
and edx, 0xff
and edx, 0x10
test edx, edx
je 0x512f75
mov eax, dword [ebp - 0x4b7]
and eax, 0xff
mov dword [ebp - 0x1b28], eax
jmp 0x512f92
mov ecx, dword [ebp - 0x4ca]
and ecx, 0xff
push ecx
push 2
call fcn.00535402
add esp, 8
mov dword [ebp - 0x1b28], eax
mov edx, dword [ebp - 0x1b28]
mov dword [ebp - 0x688], edx
mov eax, dword [ebp - 0x19b4]
imul eax, dword [ebp - 0x88c]
imul eax, dword [ebp - 0x688]
shl eax, 1
mov dword [ebp - 0x664], eax
mov ecx, dword [ebp - 0x4c2]
and ecx, 0xff
and ecx, 1
test ecx, ecx
je 0x512fdb
mov edx, dword [ebp - 0x664]
shl edx, 1
mov dword [ebp - 0x664], edx
mov eax, dword [ebp - 0x4c2]
and eax, 0xff
and eax, 4
test eax, eax
je 0x512ffb
mov ecx, dword [ebp - 0x664]
shl ecx, 1
mov dword [ebp - 0x664], ecx
mov dword [ebp - 0x898], 0x1f
jmp 0x513016
mov edx, dword [ebp - 0x898]
sub edx, 1
mov dword [ebp - 0x898], edx
cmp dword [ebp - 0x898], 0
jl 0x5130e2
mov eax, 1
mov ecx, dword [ebp - 0x898]
shl eax, cl
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x2f27c]
and edx, eax
test edx, edx
je 0x5130dd
mov eax, dword [ebp - 0x898]
mov dword [ebp - 0x1b18], eax
jmp 0x513060
mov ecx, dword [ebp - 0x1b18]
sub ecx, 1
mov dword [ebp - 0x1b18], ecx
cmp dword [ebp - 0x1b18], 0
jl 0x5130db
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2f17c]
shl eax, 0xb
cmp dword [ebp - 0x664], eax
jl 0x513089
mov dword [ebp - 0x684], 0
jmp 0x5130db
mov ecx, dword [ebp - 0x1b18]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4 + 0x2f17c]
shl eax, 0xb
cmp dword [ebp - 0x664], eax
jl 0x5130d6
mov ecx, dword [ebp - 0x1b18]
mov edx, dword [ebp + 8]
mov eax, dword [edx + ecx*4 + 0x2f178]
shl eax, 0xb
cmp dword [ebp - 0x664], eax
jge 0x5130d6
cmp dword [ebp - 0x1b18], 0
jle 0x5130d6
mov ecx, dword [ebp - 0x1b18]
mov dword [ebp - 0x684], ecx
jmp 0x5130db
jmp 0x513051
jmp 0x5130e2
jmp 0x513007
cmp dword [ebp - 0x684], 0xffffffff
je 0x513104
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x684]
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + eax*4 + 0x2f17c]
mov dword [edx + 0x2f2b8], eax
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x2f2bc], 0
je 0x51313f
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2f17c]
shl eax, 0xb
cmp dword [ebp - 0x664], eax
jle 0x51313f
mov eax, dword [ebp - 0x664]
cdq
and edx, 0x7ff
add eax, edx
sar eax, 0xb
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x2f2b8], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2f2b8]
shl eax, 0xb
sar eax, 0x18
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x170], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2f2b8]
shl eax, 0xb
sar eax, 0x10
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x171], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2f2b8]
shl eax, 0xb
sar eax, 8
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x172], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x2f2b8]
shl eax, 0xb
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x173], al
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x179], 0
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x17a], 0x30
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x17b], 0x50
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x185], 0x21
cmp dword [ebp - 0x65c], 0
je 0x5131f9
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1954]
mov ecx, dword [ebp + 0xc]
mov dl, byte [eax + 0x446c]
mov byte [ecx + 0x185], dl
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1954]
mov ecx, dword [ebp + 0xc]
mov dl, byte [eax + 0x4469]
mov byte [ecx + 0x186], dl
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1954]
mov ecx, dword [ebp + 0xc]
mov dl, byte [eax + 0x446a]
mov byte [ecx + 0x187], dl
mov eax, dword [ebp + 8]
add eax, dword [ebp - 0x1954]
mov ecx, dword [ebp + 0xc]
mov dl, byte [eax + 0x446b]
mov byte [ecx + 0x188], dl
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dl, byte [ecx + 0x2b00]
mov byte [eax + 0x189], dl
mov eax, dword [ebp + 8]
add eax, 0x29644
push eax
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18b], al
mov edx, dword [ebp + 8]
add edx, 0x29648
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18c], al
mov edx, dword [ebp + 8]
add edx, 0x2964c
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18d], al
mov edx, dword [ebp + 8]
add edx, 0x29650
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18e], al
mov edx, dword [ebp + 8]
add edx, 0x29654
push edx
call fcn.005353c2
add esp, 4
and eax, 0xff
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18f], al
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x29640]
neg eax
sbb eax, eax
and eax, 0x40
add eax, 0x80
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18f], al
mov edx, dword [ebp + 8]
cmp dword [edx + 0x2965c], 0
je 0x513333
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x18f]
or cl, 0x40
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x18f], cl
jmp 0x513348
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x18f]
and cl, 0xbf
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x18f], cl
mov eax, dword [ebp + 8]
cmp dword [eax + 0x29658], 0
je 0x51336b
mov ecx, dword [ebp + 0xc]
mov dl, byte [ecx + 0x18f]
or dl, 0x80
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x18f], dl
jmp 0x513380
mov ecx, dword [ebp + 0xc]
mov dl, byte [ecx + 0x18f]
and dl, 0x7f
mov eax, dword [ebp + 0xc]
mov byte [eax + 0x18f], dl
cmp dword [ebp - 0x65c], 0
je 0x5133de
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x291b4], 0
je 0x5133a9
mov edx, dword [ebp + 0xc]
mov al, byte [edx + 0x18f]
or al, 0x10
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x18f], al
mov edx, dword [ebp + 0xc]
mov al, byte [edx + 0x200]
and al, 0xbf
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x200], al
mov edx, dword [ebp + 8]
cmp dword [edx + 0x291b8], 0
je 0x5133de
mov eax, dword [ebp + 0xc]
mov cl, byte [eax + 0x200]
or cl, 0x40
mov edx, dword [ebp + 0xc]
mov byte [edx + 0x200], cl
mov eax, 1
mov esp, ebp
pop ebp
ret