Function at 0x4ec850
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x527764
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2308
call fcn.004fc970
mov eax, dword [0x588eb0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov esi, dword [ebp + 0xc]
xor ebx, ebx
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x2288], eax
xor eax, eax
mov dword [ebp - 0x22a0], 0
cmp esi, 1
mov ecx, dword [edi + 8]
setne al
mov dword [ebp - 0x2280], esi
mov dword [ebp - 0x2298], edi
mov dword [ebp - 0x229c], edi
mov dword [ebp - 0x227c], esi
mov dword [ebp - 0x2290], esi
mov dword [ebp - 0x2278], eax
mov dword [ebp - 0x22a0], eax
call fcn.004e4400
cmp byte [edi + 0xfc], 2
je 0x4ec91a
cmp dword [edi + 0x9c], ebx
jne 0x4ec91a
test esi, esi
jne 0x4ec91a
test byte [edi + 0xf0], 0x80
jne 0x4ec901
xor eax, eax
mov eax, eax
jmp 0x4ef9f8
cmp dword [edi + 0x98], 0x2000
mov byte [edi + 0xc], 1
sbb eax, eax
neg eax
add eax, eax
jmp 0x4ef9f8
cmp dword [ebp + 8], 1
jne 0x4ecba7
cmp dword [edi + 0x9c], 3
je 0x4ec94c
push dword [ebp + 0x14]
push dword [ebp - 0x2288]
push esi
mov ecx, dword [edi + 8]
push 1
push edi
call fcn.004e4d00
mov eax, 3
jmp 0x4ef9f8
mov esi, dword [ebp + 0x14]
test esi, esi
jne 0x4eca4f
mov ebx, dword [ebp - 0x2280]
test ebx, ebx
jne 0x4ec9dd
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x4eca45
push eax
call fcn.00404310
push ebx
push ebx
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x14
test eax, eax
je 0x4eca45
nop dword [eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ec9c0
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push 0
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ec990
push eax
push eax
push ebx
jmp 0x4ec937
mov eax, dword [edi + 0x44]
test eax, eax
je 0x4eca45
push eax
call fcn.00404310
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x14
test eax, eax
je 0x4eca45
nop
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4eca30
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push 1
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4eca00
push 0
push 0
push ebx
jmp 0x4ec937
mov eax, dword [ebp - 0x2280]
test eax, eax
jne 0x4ecaf7
test esi, esi
jle 0x4ec942
mov eax, esi
sub eax, ebx
push eax
mov eax, dword [ebp - 0x2288]
add eax, ebx
push eax
push dword [edi + 0x1c]
call fcn.004025d0
add esp, 0xc
test eax, eax
jle 0x4ec942
push 0
push 0
push 0xa
push dword [edi + 0x18]
add ebx, eax
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ecae5
nop dword [eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ecad0
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push 0
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ecaa0
cmp ebx, esi
jl 0x4eca65
mov eax, 3
jmp 0x4ef9f8
test dword [edi + 0xf0], 0x8000
je 0x4ecb10
push esi
push dword [ebp - 0x2288]
push eax
jmp 0x4ec937
test esi, esi
jle 0x4ec942
mov eax, esi
sub eax, ebx
push eax
mov eax, dword [ebp - 0x2288]
add eax, ebx
push eax
push dword [edi + 0x44]
call fcn.004025d0
add esp, 0xc
test eax, eax
jle 0x4ec942
push 0
push 0
push 0xa
push dword [edi + 0x40]
add ebx, eax
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ecb95
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ecb80
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push 1
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ecb50
cmp ebx, esi
jl 0x4ecb18
mov eax, 3
jmp 0x4ef9f8
mov eax, dword [edi + 0x9c]
cmp eax, 5
ja case.default.0x4ecbb6
jmp dword [eax*4 + 0x4efa18]
mov ebx, dword [ebp + 0x14]
add dword [edi + 0x98], ebx
cmp ebx, 0xa
jge 0x4ecbe1
mov ecx, edi
call fcn.004efa30
movzx eax, al
neg eax
sbb eax, eax
and eax, 2
jmp 0x4ef9f8
test esi, esi
je 0x4ecbcb
lea ecx, [ebp - 0x2310]
call fcn.004fb8f0
lea ecx, [ebp - 0x22d8]
mov dword [ebp - 4], 0
call fcn.004d6b40
push 0
lea eax, [ebp - 0x22d8]
mov byte [ebp - 4], 1
push eax
push 0
push 0
push 0
push str.test
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004da7b0
test al, al
je 0x4ecf1d
push 0
lea eax, [ebp - 0x22d8]
push eax
movzx eax, byte [edi + 0xc]
lea ecx, [ebp - 0x2310]
push 1
push eax
call fcn.004fb970
test al, al
je 0x4ecf1d
test dword [edi + 0xf0], 0x2000
je 0x4ecc78
push edi
push 0x4eb700
push dword [ebp - 0x2310]
call fcn.00403120
add esp, 0xc
push ebx
push dword [ebp - 0x2288]
push dword [ebp - 0x230c]
call fcn.0042c5d0
push dword [ebp - 0x2304]
call fcn.00404d00
add esp, 0x10
test eax, eax
jns 0x4eccee
push eax
push dword [ebp - 0x2304]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4eccb5
cmp ebx, 0xb
jge 0x4eccee
mov ecx, edi
call fcn.004efa30
movzx esi, al
lea ecx, [ebp - 0x22c0]
neg esi
sbb esi, esi
and esi, 2
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
lea ecx, [ebp - 0x2310]
call fcn.004fb930
mov eax, esi
jmp 0x4ef9f8
mov eax, dword [ebp - 0x2304]
mov eax, dword [eax + 0xc0]
test eax, eax
je 0x4ecd14
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x4ecd14
push eax
lea ecx, [edi + 0x138]
call fcn.004a4fc0
mov ecx, edi
call fcn.004ec4f0
test al, al
jne 0x4ecf1d
test byte [edi + 0xf0], 0x40
je 0x4ecf5e
mov ecx, dword [edi + 8]
call fcn.004e4410
mov dword [ebp - 0x2294], eax
test eax, eax
je 0x4ecf5e
xor ecx, ecx
cmp esi, 1
push 1
setne cl
add ecx, 0x65
push 1
push ecx
lea ecx, [ebp - 0x2258]
call fcn.004d3320
push 0
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 2
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4ece55
mov ecx, dword [ebp - 0x2304]
mov eax, dword [ecx + 0xc0]
test eax, eax
je 0x4ecdc0
mov eax, dword [eax + 0xd0]
mov dword [ebp - 0x229c], eax
test eax, eax
je 0x4ecdc0
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ecda1
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
push dword [ebp - 0x229c]
call dword [edx + 0x10]
jmp 0x4ece48
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x222c]
push eax
call fcn.004e4420
push 0
push 0x572b80
lea ecx, [ebp - 0x222c]
mov byte [ebp - 4], 3
call fcn.004a3c90
test eax, eax
je 0x4ece15
push eax
push 0
lea eax, [ebp - 0x2274]
push eax
lea ecx, [ebp - 0x222c]
call fcn.004df170
push eax
lea ecx, [ebp - 0x222c]
call fcn.004a4d20
lea ecx, [ebp - 0x2274]
call fcn.004a4f70
cmp dword [ebp - 0x2218], 0x10
lea ecx, [ebp - 0x222c]
mov eax, dword [ebp - 0x221c]
cmovae ecx, dword [ebp - 0x222c]
inc eax
mov edx, dword [esi]
push eax
push ecx
mov ecx, esi
call dword [edx + 0x10]
lea ecx, [ebp - 0x222c]
mov byte [ebp - 4], 2
call fcn.004a4f70
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d3730
lea ecx, [ebp - 0x2258]
mov dword [ebp - 0x229c], 1
mov byte [ebp - 4], 4
call fcn.004d3710
mov ecx, dword [edi + 8]
call fcn.004e4400
mov ecx, dword [ebp - 0x2294]
lea ebx, [ebp - 0x2258]
push ebx
push edx
push eax
mov esi, dword [ecx]
call dword [esi + 0x24]
jmp 0x4ecec3
mov ebx, dword [ebp + 0x14]
mov dword [ebp - 4], 2
sub eax, 2
je 0x4ecf45
sub eax, 1
je 0x4ecf12
sub eax, 1
jne 0x4ecf4f
lea ecx, [ebp - 0x2258]
call fcn.004d3390
lea ecx, [ebp - 0x22c0]
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
lea ecx, [ebp - 0x2310]
call fcn.004fb930
mov eax, 4
jmp 0x4ef9f8
lea ecx, [ebp - 0x2258]
call fcn.004d3390
lea ecx, [ebp - 0x22c0]
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
lea ecx, [ebp - 0x2310]
call fcn.004fb930
xor eax, eax
jmp 0x4ef9f8
or dword [edi + 0xf0], 0x8000
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 1
call fcn.004d3390
test dword [edi + 0xf0], 0x8000
je 0x4ed197
lea ecx, [edi + 0x60]
call fcn.004d4430
push 1
push ebx
push dword [ebp - 0x2288]
lea ecx, [edi + 0x60]
call fcn.004d4370
test al, al
je 0x4ecf1d
mov byte [edi + 5], 1
mov dword [ebp - 0x221c], 0
mov dword [ebp - 0x2218], 0xf
mov byte [ebp - 0x222c], 0
mov eax, dword [ebp - 0x2304]
mov byte [ebp - 4], 6
mov eax, dword [eax + 0xc0]
test eax, eax
je 0x4ecfd6
mov eax, dword [eax + 0xd0]
test eax, eax
je 0x4ecfd6
push eax
lea ecx, [ebp - 0x222c]
call fcn.004a4fc0
jmp 0x4ed03a
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x2274]
push eax
call fcn.004e4420
push 0
push 0x572b80
lea ecx, [ebp - 0x2274]
mov byte [ebp - 4], 7
call fcn.004a3c90
test eax, eax
je 0x4ed02b
push eax
push 0
lea eax, [ebp - 0x225c]
push eax
lea ecx, [ebp - 0x2274]
call fcn.004df170
push eax
lea ecx, [ebp - 0x222c]
call fcn.004a4d20
lea ecx, [ebp - 0x225c]
call fcn.004a4f70
lea ecx, [ebp - 0x2274]
mov byte [ebp - 4], 6
call fcn.004a4f70
lea ecx, [ebp - 0x22c0]
call fcn.004d4430
lea ecx, [ebp - 0x22d8]
call fcn.004d4430
push dword [edi + 0xf0]
cmp dword [ebp - 0x2218], 0x10
lea ecx, [ebp - 0x22d8]
push ecx
lea eax, [ebp - 0x222c]
cmovae eax, dword [ebp - 0x222c]
push 0
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004daa80
test al, al
jne 0x4ed09b
lea ecx, [ebp - 0x222c]
call fcn.004a4f70
jmp 0x4ecee7
push 0
lea eax, [ebp - 0x22d8]
push eax
movzx eax, byte [edi + 0xc]
lea ecx, [edi + 0x10]
push 1
push eax
call fcn.004fb970
test al, al
je 0x4ed08b
lea ecx, [edi + 0x60]
call fcn.004d4510
push eax
lea ecx, [edi + 0x60]
call fcn.004d3710
push eax
push dword [edi + 0x14]
call fcn.0042c5d0
add esp, 0xc
test eax, eax
js 0x4ed08b
push dword [edi + 0x1c]
call fcn.00404d00
add esp, 4
test eax, eax
jns 0x4ed0f8
push eax
push dword [edi + 0x1c]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4ed08b
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ed157
mov esi, dword [ebp - 0x2278]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ed142
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push esi
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ed113
mov dword [edi + 0x9c], 2
lea ecx, [ebp - 0x222c]
call fcn.004a4f70
lea ecx, [ebp - 0x22c0]
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
lea ecx, [ebp - 0x2310]
call fcn.004fb930
mov eax, 3
jmp 0x4ef9f8
mov eax, dword [ebp - 0x2304]
mov ecx, dword [eax]
mov dword [ebp - 0x227c], ecx
cmp ecx, 0x300
je 0x4ed1e8
cmp ecx, 0x200
je 0x4ed1e8
push 0
mov ecx, edi
call fcn.004ec660
test al, al
jne 0x4ed1e2
push str.tls1_0
mov ecx, edi
mov byte [edi + 0xc], 1
call fcn.004ec660
xor ecx, ecx
test al, al
sete cl
lea ecx, [ecx*2 + 0x301]
jmp 0x4ed1e8
mov ecx, dword [ebp - 0x227c]
movzx eax, byte [edi + 0xc]
push ecx
push 0
push 0
push eax
lea ecx, [edi + 0x38]
call fcn.004fb970
test al, al
je 0x4ecf1d
mov eax, dword [edi + 0xe4]
test eax, eax
je 0x4ed218
push eax
push dword [edi + 0x44]
call fcn.004014b0
add esp, 8
lea ecx, [edi + 0xb0]
call fcn.004d4510
test eax, eax
je 0x4ed24a
lea ecx, [edi + 0xb0]
call fcn.004d4510
push eax
lea ecx, [edi + 0xb0]
call fcn.004d3710
push eax
push dword [edi + 0x44]
call fcn.004030c0
add esp, 0xc
push 0x58b74c
mov dword [ebp - method.ProtocolFilters::AutoLock.virtual_0], vtable.ProtocolFilters::AutoLock.0
mov dword [ebp - 0x22a0], 0x58b74c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x58b744]
lea ecx, [edi + 0x44]
mov esi, eax
mov byte [ebp - 4], 8
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
jne 0x4ed2a3
mov edx, dword [ecx]
cmp dword [eax + 0x10], edx
jae 0x4ed28c
mov eax, dword [eax + 8]
jmp 0x4ed290
mov esi, eax
mov eax, dword [eax]
cmp byte [eax + 0xd], 0
je 0x4ed282
cmp esi, dword [0x58b744]
je 0x4ed2a3
cmp edx, dword [esi + 0x10]
jae 0x4ed2e3
lea eax, [ebp - 0x2281]
mov dword [ebp - 0x227c], ecx
push eax
lea eax, [ebp - 0x227c]
mov ecx, 0x58b744
push eax
push 0x52cda6
call fcn.004ea840
push eax
add eax, 0x10
mov ecx, 0x58b744
push eax
push esi
lea eax, [ebp - 0x227c]
push eax
call fcn.004ea9d0
mov esi, dword [ebp - 0x227c]
push 0x58b74c
mov dword [esi + 0x14], edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x4eba90
push dword [edi + 0x38]
call fcn.004016a0
add esp, 8
test dword [edi + 0xf0], 0x200
je 0x4ed340
push 0
push 1
push 0x41
push dword [edi + 0x44]
call fcn.00402650
push 0x4ec800
push 0x3f
push dword [edi + 0x38]
call fcn.00402b00
lea eax, [edi + 0xe0]
push eax
push 0
push 0x40
push dword [edi + 0x38]
call fcn.00402880
add esp, 0x2c
mov eax, dword [ebp - 0x2304]
mov ecx, dword [eax + 0xc0]
test ecx, ecx
je 0x4ed372
mov ecx, dword [ecx + 0xd0]
test ecx, ecx
je 0x4ed372
push ecx
call fcn.00438900
mov ecx, dword [edi + 0x44]
add esp, 4
mov dword [ecx + 0x120], eax
mov eax, dword [ebp - 0x2304]
xor ecx, ecx
mov dword [ebp - 0x2230], 0xf
mov dword [ebp - 0x2234], ecx
mov byte [ebp - 0x2244], cl
mov eax, dword [eax + 0xc0]
mov byte [ebp - 4], 9
test eax, eax
je 0x4ed424
mov eax, dword [eax + 0xbc]
mov dword [ebp - 0x227c], eax
test eax, eax
je 0x4ed424
push eax
xor esi, esi
call fcn.0042ac90
add esp, 4
test eax, eax
jle 0x4ed41e
mov ebx, dword [ebp - 0x227c]
push esi
push ebx
call fcn.0042aca0
add esp, 8
test eax, eax
je 0x4ed41b
mov eax, dword [eax + 4]
mov dword [ebp - 0x227c], eax
test eax, eax
je 0x4ed41b
cmp dword [ebp - 0x2234], 0
je 0x4ed401
push 1
push 0x572b80
lea ecx, [ebp - 0x2244]
call fcn.004a4ad0
mov eax, dword [ebp - 0x227c]
push eax
lea ecx, [ebp - 0x2244]
call fcn.004a45f0
push ebx
inc esi
call fcn.0042ac90
add esp, 4
cmp esi, eax
jl 0x4ed3c5
mov ebx, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x2234]
test dword [edi + 0xf0], 0x100
je 0x4ed45f
push str.tls_ac
mov ecx, edi
call fcn.004ec660
test al, al
jne 0x4ed459
push 0x52cdfc
push dword [edi + 0x44]
call fcn.00402bd0
mov byte [edi + 0xae], 1
jmp 0x4ed515
mov ecx, dword [ebp - 0x2234]
test ecx, ecx
je 0x4ed508
lea eax, [ecx + 0x36]
mov byte [ebp - 4], 0xa
push eax
lea ecx, [ebp - 0x222c]
mov dword [ebp - 0x221c], 0
mov dword [ebp - 0x2218], 0xf
mov byte [ebp - 0x222c], 0
mov dword [ebp - 0x22a0], 1
call fcn.004a4600
cmp dword [ebp - 0x2230], 0x10
lea eax, [ebp - 0x2244]
push dword [ebp - 0x2234]
cmovae eax, dword [ebp - 0x2244]
lea ecx, [ebp - 0x222c]
push eax
call fcn.004a4ad0
push 0x36
push str.:AES:SEED:DES_CBC3_SHA:ALL:_aNULL:_eNULL:_EXP_RC4_MD5
lea ecx, [ebp - 0x222c]
call fcn.004a4ad0
cmp dword [ebp - 0x2218], 0x10
lea eax, [ebp - 0x222c]
cmovae eax, dword [ebp - 0x222c]
push eax
push dword [edi + 0x44]
call fcn.00402bd0
add esp, 8
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x222c]
call fcn.004a4f70
jmp 0x4ed518
push str.AES:SEED:DES_CBC3_SHA:ALL:_aNULL:_eNULL:_EXP_RC4_MD5
push dword [edi + 0x44]
call fcn.00402bd0
add esp, 8
lea ecx, [edi + 0x60]
call fcn.004d4430
push 1
push ebx
push dword [ebp - 0x2288]
lea ecx, [edi + 0x60]
call fcn.004d4370
test al, al
jne 0x4ed545
lea ecx, [ebp - 0x2244]
call fcn.004a4f70
jmp 0x4ecf1d
push dword [edi + 0x44]
call fcn.00404d30
add esp, 4
test eax, eax
jns 0x4ed565
push eax
push dword [edi + 0x44]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4ed535
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ed5c9
nop word [eax + eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ed5b4
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push dword [ebp - 0x2280]
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ed580
mov dword [edi + 0x9c], 1
lea ecx, [ebp - 0x2244]
mov byte [edi + 5], 1
jmp 0x4ed167
mov ebx, dword [ebp + 0x14]
test ebx, ebx
jne 0x4ed69d
test esi, esi
jne 0x4ecf08
test dword [edi + 0xf0], 0x100
je 0x4ed627
push str.tls_ac
mov ecx, edi
call fcn.004ec660
test al, al
jne 0x4ed627
push str.tls_ac
mov ecx, edi
call fcn.004eb560
mov eax, 4
jmp 0x4ef9f8
cmp byte [edi + 0xc], 0
je 0x4ecf08
mov eax, dword [edi + 0x44]
cmp dword [eax], 0x300
jle 0x4ecf08
push str.tls1_0
mov ecx, edi
call fcn.004ec660
test al, al
je 0x4ed666
push str.tls1_0
mov ecx, edi
call fcn.004eb8f0
mov eax, 4
jmp 0x4ef9f8
cmp byte [edi + 0xae], 0
jne 0x4ecf08
push str.tls1_0
mov ecx, edi
call fcn.004ec660
test al, al
jne 0x4ecf08
push str.tls1_0
mov ecx, edi
call fcn.004eb560
mov eax, 4
jmp 0x4ef9f8
mov al, byte [edi + 0xa0]
mov ecx, esi
test al, al
mov edx, esi
cmovne ecx, dword [ebp - 0x2278]
cmove edx, dword [ebp - 0x2278]
mov dword [ebp - 0x227c], edx
cmp ecx, 1
jne 0x4ed6dc
push ecx
push ebx
push dword [ebp - 0x2288]
lea ecx, [edi + 0x60]
call fcn.004d4370
mov eax, 3
jmp 0x4ef9f8
push dword [edi + 0x44]
call fcn.00403e90
add esp, 4
cmp eax, 3
je 0x4ee14b
push ebx
push dword [ebp - 0x2288]
push dword [edi + 0x3c]
call fcn.0042c5d0
push dword [edi + 0x44]
call fcn.00404d30
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x4ed7df
push esi
push dword [edi + 0x44]
call fcn.00404760
add esp, 8
cmp eax, 2
je 0x4ed7dd
cmp eax, 4
je 0x4ed7dd
call fcn.00436da0
and eax, 0xfff
cmp eax, 0x174
jne 0x4ed756
push 0
mov ecx, edi
call fcn.004eb280
mov eax, 4
jmp 0x4ef9f8
cmp byte [edi + 0xc], 0
je 0x4ecf08
test dword [edi + 0xf0], 0x100
je 0x4ed780
push str.tls_ac
mov ecx, edi
call fcn.004ec660
test al, al
je 0x4ed611
mov eax, dword [edi + 0x44]
mov eax, dword [eax]
cmp eax, 0x300
je 0x4ed7ca
cmp eax, 0x200
je 0x4ed7ca
push str.tls1_0
mov ecx, edi
call fcn.004ec660
mov ecx, edi
test al, al
je 0x4ed7b6
push 0
call fcn.004eb280
mov eax, 4
jmp 0x4ef9f8
push str.tls1_0
call fcn.004eb560
mov eax, 4
jmp 0x4ef9f8
push 0
mov ecx, edi
call fcn.004eb560
mov eax, 4
jmp 0x4ef9f8
test esi, esi
jne 0x4ed7f5
push dword [edi + 0x44]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
test dword [edi + 0xf0], 0x200
je 0x4ed87a
lea eax, [ebp - 0x2278]
push eax
push 0
push 0x6d
push dword [edi + 0x44]
call fcn.00402650
add esp, 0x10
test eax, eax
je 0x4ed87a
push dword [ebp - 0x2278]
call fcn.0042b050
add esp, 4
cmp eax, 0x1c
jne 0x4ed86c
push dword [ebp - 0x2278]
call fcn.00430080
add esp, 4
cmp eax, 0x500
jge 0x4ed86c
push 0
mov ecx, edi
call fcn.004eb280
test al, al
je 0x4ed86c
push dword [ebp - 0x2278]
call fcn.00430580
add esp, 4
mov eax, 4
jmp 0x4ef9f8
push dword [ebp - 0x2278]
call fcn.00430580
add esp, 4
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ed8e4
mov esi, dword [ebp - 0x227c]
nop word [eax + eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ed8cf
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push esi
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ed8a0
push dword [edi + 0x44]
call fcn.00403e90
add esp, 4
cmp eax, 3
je 0x4ee14b
cmp byte [edi + 0xac], 0
je 0x4ec942
push dword [edi + 0x44]
call fcn.004024b0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x2294], ebx
test ebx, ebx
je 0x4ecf08
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + 0x120]
test eax, eax
je 0x4ed94c
push eax
push 0x572d44
lea eax, [ebp - 0x2214]
push 0x2000
push eax
call fcn.004cdc10
add esp, 0x10
jmp 0x4eda0d
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push 0xd
push ebx
call fcn.00434bd0
add esp, 4
push eax
call fcn.00435890
add esp, 0x10
cmp eax, 0xffffffff
jne 0x4eda0d
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x2244]
push eax
call fcn.004e4420
push 0
push 0x572b80
lea ecx, [ebp - 0x2244]
mov dword [ebp - 4], 0xb
call fcn.004a3c90
test eax, eax
je 0x4ed9cd
push eax
push 0
lea eax, [ebp - 0x2274]
push eax
lea ecx, [ebp - 0x2244]
call fcn.004df170
push eax
lea ecx, [ebp - 0x2244]
call fcn.004a4d20
lea ecx, [ebp - 0x2274]
call fcn.004a4f70
cmp dword [ebp - 0x2230], 0x10
lea eax, [ebp - 0x2244]
cmovae eax, dword [ebp - 0x2244]
push eax
push 0x572d44
lea eax, [ebp - 0x2214]
push 0x2000
push eax
call fcn.004cdc10
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2244]
call fcn.004a4f70
push 0x100
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.004ffc00
push 0x100
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.004ffc00
add esp, 0x18
lea eax, [ebp - 0x114]
push 0x100
push eax
push 0xd
push ebx
call fcn.00434bd0
add esp, 4
push eax
call fcn.00435890
add esp, 0x10
cmp eax, 0xffffffff
je 0x4edaa1
push 0x100
lea eax, [ebp - 0x214]
push eax
push 0xd
push ebx
call fcn.00434bc0
add esp, 4
push eax
call fcn.00435890
add esp, 0x10
cmp eax, 0xffffffff
je 0x4edaa1
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x114]
push eax
call fcn.0050bf2e
add esp, 8
test eax, eax
jne 0x4edaa1
or dword [edi + 0xf0], 0x20
test dword [edi + 0xf0], 0x800
je 0x4edcd1
mov ecx, dword [edi + 8]
call fcn.004e4410
mov dword [ebp - 0x2288], eax
test eax, eax
je 0x4edcd1
push 1
push 3
push 0x68
lea ecx, [ebp - 0x2258]
call fcn.004d3320
push 0
lea ecx, [ebp - 0x2258]
mov dword [ebp - 4], 0xc
call fcn.004d36b0
mov dword [ebp - 0x2278], eax
test eax, eax
je 0x4edb9b
lea ecx, [ebp - 0x2244]
call fcn.004d41d0
push 0
push ebx
mov byte [ebp - 4], 0xd
call fcn.00434460
add esp, 8
lea ecx, [ebp - 0x2244]
mov esi, eax
call fcn.004d4430
push esi
lea ecx, [ebp - 0x2244]
call fcn.004d4460
test al, al
je 0x4edb8c
lea ecx, [ebp - 0x2244]
call fcn.004d3710
mov dword [ebp - 0x227c], eax
lea eax, [ebp - 0x227c]
push eax
push ebx
call fcn.00434460
mov esi, dword [ebp - 0x2278]
lea ecx, [ebp - 0x2244]
add esp, 8
mov esi, dword [esi]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x2244]
call fcn.004d3710
mov ecx, dword [ebp - 0x2278]
push eax
call dword [esi + 0x10]
mov ecx, dword [ebp - 0x2278]
push 0
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x2244]
mov byte [ebp - 4], 0xc
call fcn.004d4200
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4edbe8
cmp byte [ebp - 0x114], 0
je 0x4edbe8
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4edbc0
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
lea eax, [ebp - 0x114]
push eax
call dword [edx + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 2
lea ecx, [ebp - 0x2258]
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4edc38
cmp byte [ebp - 0x214], 0
je 0x4edc38
lea ecx, [ebp - 0x214]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4edc10
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
lea eax, [ebp - 0x214]
push eax
call dword [edx + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d3730
lea ecx, [ebp - 0x2258]
mov dword [ebp - 0x227c], 1
mov byte [ebp - 4], 0xe
call fcn.004d3710
mov ecx, dword [edi + 8]
call fcn.004e4400
mov ecx, dword [ebp - 0x2288]
mov esi, dword [ecx]
lea ecx, [ebp - 0x2258]
push ecx
mov ecx, dword [ebp - 0x2288]
push edx
push eax
call dword [esi + 0x24]
jmp 0x4edca6
mov dword [ebp - 4], 0xc
sub eax, 3
je 0x4ede90
sub eax, 1
je 0x4ede99
lea ecx, [ebp - 0x2258]
mov dword [ebp - 4], 0xffffffff
call fcn.004d3390
lea ecx, [ebp - 0x22d8]
call fcn.004d6b40
test dword [edi + 0xf0], 0x200
mov dword [ebp - 4], 0x10
je 0x4edefb
push 0
call fcn.0050b83e
add esp, 4
mov dword [ebp - 0x2288], edx
mov esi, eax
mov byte [ebp - 0x2278], 1
lea eax, [ebp - 0x22a4]
mov dword [ebp - 0x227c], esi
push eax
lea eax, [ebp - 0x2214]
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004da350
test al, al
je 0x4edd5c
mov eax, dword [ebp - 0x2288]
mov ecx, esi
sub ecx, dword [ebp - 0x22a4]
sbb eax, dword [ebp - 0x22a0]
mov dword [ebp - 0x2314], eax
jne 0x4edd5c
cmp ecx, 0x15180
jbe 0x4edd63
mov byte [ebp - 0x2278], 0
push dword [edi + 0x44]
call fcn.004024f0
add esp, 4
mov esi, eax
cmp byte [ebp - 0x2278], 0
jne 0x4edda0
push dword [ebp - 0x2288]
lea eax, [ebp - 0x2214]
push dword [ebp - 0x227c]
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004dc630
test esi, esi
je 0x4edefb
push dword [ebp - 0x2278]
lea eax, [ebp - 0x2214]
push esi
push ebx
push dword [edi + 0xe0]
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004dd240
test eax, eax
je 0x4edefb
mov ecx, dword [edi + 8]
call fcn.004e4410
mov dword [ebp - 0x2278], eax
test eax, eax
je 0x4edefb
push 1
push 1
push 0x67
lea ecx, [ebp - 0x2258]
call fcn.004d3320
push 0
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 0x11
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4ede46
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4ede46
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ede22
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
push dword [ebx + 0x14]
call dword [edx + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d3730
lea ecx, [ebp - 0x2258]
mov dword [ebp - 0x227c], 1
mov byte [ebp - 4], 0x12
call fcn.004d3710
mov ecx, dword [edi + 8]
call fcn.004e4400
mov ecx, dword [ebp - 0x2278]
mov esi, dword [ecx]
lea ecx, [ebp - 0x2258]
push ecx
mov ecx, dword [ebp - 0x2278]
push edx
push eax
call dword [esi + 0x24]
jmp 0x4ededb
push 0
mov ecx, edi
call fcn.004eb280
push ebx
call fcn.00434490
add esp, 4
lea ecx, [ebp - 0x2258]
call fcn.004d3390
mov eax, 4
jmp 0x4ef9f8
mov dword [ebp - 4], 0x11
sub eax, 3
je 0x4edf3b
sub eax, 1
je 0x4edf44
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 0x10
call fcn.004d3390
mov eax, dword [edi + 0xf0]
test al, 0x20
push eax
lea eax, [ebp - 0x22d8]
push eax
lea eax, [ebp - 0x2214]
je 0x4edf78
push 0
push 1
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004da7b0
test al, al
jne 0x4edf8f
push ebx
call fcn.00434490
add esp, 4
jmp 0x4edf58
push 0
mov ecx, edi
call fcn.004eb280
push ebx
call fcn.00434490
add esp, 4
lea ecx, [ebp - 0x2258]
call fcn.004d3390
lea ecx, [ebp - 0x22c0]
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
mov eax, 4
jmp 0x4ef9f8
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004daa80
jmp 0x4edf2c
push ebx
call fcn.00434490
add esp, 4
lea eax, [ebp - 0x22d8]
lea ecx, [edi + 0x10]
push 0
push eax
movzx eax, byte [edi + 0xc]
push 1
push eax
call fcn.004fb970
test al, al
je 0x4edf58
test dword [edi + 0xf0], 0x2000
je 0x4ee038
lea eax, [ebp - 0x2290]
mov dword [ebp - 0x2290], 0
push eax
lea eax, [ebp - 0x227c]
push eax
push dword [edi + 0x44]
call fcn.00403140
add esp, 0xc
cmp dword [ebp - 0x2290], 0
jbe 0x4ee010
lea esi, [edi + 0xc8]
mov ecx, esi
call fcn.004d4430
push 1
push dword [ebp - 0x2290]
mov ecx, esi
push dword [ebp - 0x227c]
call fcn.004d4370
jmp 0x4ee01c
mov esi, dword [ebp - 0x229c]
add esi, 0xc8
mov ecx, esi
call fcn.004d4510
test eax, eax
je 0x4ee038
push edi
push 0x4eb750
push dword [edi + 0x10]
call fcn.00403120
add esp, 0xc
test dword [edi + 0xf0], 0x100
je 0x4ee06b
push str.tls_ac
mov ecx, edi
call fcn.004ec660
test al, al
jne 0x4ee06b
push 0x52cdfc
push dword [edi + 0x1c]
call fcn.00402bd0
add esp, 8
mov byte [edi + 0xae], 1
lea ecx, [edi + 0x60]
call fcn.004d4510
push eax
lea ecx, [edi + 0x60]
call fcn.004d3710
push eax
push dword [edi + 0x14]
call fcn.0042c5d0
add esp, 0xc
test eax, eax
js 0x4edf58
push fcn.00403ea0
push 1
push dword [edi + 0x1c]
call fcn.00402490
push dword [edi + 0x1c]
call fcn.00404d00
add esp, 0x10
test eax, eax
jns 0x4ee0c3
push eax
push dword [edi + 0x1c]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4edf58
push 0
push 0
push 0xa
push dword [edi + 0x18]
mov dword [edi + 0x9c], 5
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ee12b
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ee116
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push dword [ebp - 0x2280]
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ee0e2
lea ecx, [ebp - 0x22c0]
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
mov eax, 3
jmp 0x4ef9f8
push dword [edi + 0x44]
call fcn.004024b0
mov ebx, eax
add esp, 4
mov dword [ebp - 0x2288], ebx
test ebx, ebx
je 0x4ecf08
mov ecx, dword [edi + 0x44]
mov eax, dword [ecx + 0x120]
test eax, eax
je 0x4ee192
push eax
push 0x572d44
lea eax, [ebp - 0x2214]
push 0x2000
push eax
call fcn.004cdc10
add esp, 0x10
jmp 0x4ee253
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push 0xd
push ebx
call fcn.00434bd0
add esp, 4
push eax
call fcn.00435890
add esp, 0x10
cmp eax, 0xffffffff
jne 0x4ee253
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x2244]
push eax
call fcn.004e4420
push 0
push 0x572b80
lea ecx, [ebp - 0x2244]
mov dword [ebp - 4], 0x14
call fcn.004a3c90
test eax, eax
je 0x4ee213
push eax
push 0
lea eax, [ebp - 0x2274]
push eax
lea ecx, [ebp - 0x2244]
call fcn.004df170
push eax
lea ecx, [ebp - 0x2244]
call fcn.004a4d20
lea ecx, [ebp - 0x2274]
call fcn.004a4f70
cmp dword [ebp - 0x2230], 0x10
lea eax, [ebp - 0x2244]
cmovae eax, dword [ebp - 0x2244]
push eax
push 0x572d44
lea eax, [ebp - 0x2214]
push 0x2000
push eax
call fcn.004cdc10
add esp, 0x10
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2244]
call fcn.004a4f70
push 0x100
lea eax, [ebp - 0x214]
push 0
push eax
call fcn.004ffc00
push 0x100
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.004ffc00
add esp, 0x18
lea eax, [ebp - 0x214]
push 0x100
push eax
push 0xd
push ebx
call fcn.00434bd0
add esp, 4
push eax
call fcn.00435890
add esp, 0x10
cmp eax, 0xffffffff
je 0x4ee2e7
push 0x100
lea eax, [ebp - 0x114]
push eax
push 0xd
push ebx
call fcn.00434bc0
add esp, 4
push eax
call fcn.00435890
add esp, 0x10
cmp eax, 0xffffffff
je 0x4ee2e7
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x214]
push eax
call fcn.0050bf2e
add esp, 8
test eax, eax
jne 0x4ee2e7
or dword [edi + 0xf0], 0x20
test dword [edi + 0xf0], 0x800
je 0x4ee514
mov ecx, dword [edi + 8]
call fcn.004e4410
mov dword [ebp - 0x2294], eax
test eax, eax
je 0x4ee514
push 1
push 3
push 0x68
lea ecx, [ebp - 0x2258]
call fcn.004d3320
push 0
lea ecx, [ebp - 0x2258]
mov dword [ebp - 4], 0x15
call fcn.004d36b0
mov dword [ebp - 0x2278], eax
test eax, eax
je 0x4ee3e1
lea ecx, [ebp - 0x2244]
call fcn.004d41d0
push 0
push ebx
mov byte [ebp - 4], 0x16
call fcn.00434460
add esp, 8
lea ecx, [ebp - 0x2244]
mov esi, eax
call fcn.004d4430
push esi
lea ecx, [ebp - 0x2244]
call fcn.004d4460
test al, al
je 0x4ee3d2
lea ecx, [ebp - 0x2244]
call fcn.004d3710
mov dword [ebp - 0x227c], eax
lea eax, [ebp - 0x227c]
push eax
push ebx
call fcn.00434460
mov esi, dword [ebp - 0x2278]
lea ecx, [ebp - 0x2244]
add esp, 8
mov esi, dword [esi]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x2244]
call fcn.004d3710
mov ecx, dword [ebp - 0x2278]
push eax
call dword [esi + 0x10]
mov ecx, dword [ebp - 0x2278]
push 0
push 0
push 0
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [ebp - 0x2244]
mov byte [ebp - 4], 0x15
call fcn.004d4200
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4ee42e
cmp byte [ebp - 0x214], 0
je 0x4ee42e
lea ecx, [ebp - 0x214]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ee406
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
lea eax, [ebp - 0x214]
push eax
call dword [edx + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 2
lea ecx, [ebp - 0x2258]
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4ee47b
cmp byte [ebp - 0x114], 0
je 0x4ee47b
lea ecx, [ebp - 0x114]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ee453
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
lea eax, [ebp - 0x114]
push eax
call dword [edx + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d3730
lea ecx, [ebp - 0x2258]
mov dword [ebp - 0x227c], 1
mov byte [ebp - 4], 0x17
call fcn.004d3710
mov ecx, dword [edi + 8]
call fcn.004e4400
mov ecx, dword [ebp - 0x2294]
mov esi, dword [ecx]
lea ecx, [ebp - 0x2258]
push ecx
mov ecx, dword [ebp - 0x2294]
push edx
push eax
call dword [esi + 0x24]
jmp 0x4ee4e9
mov dword [ebp - 4], 0x15
sub eax, 3
je 0x4ede90
sub eax, 1
je 0x4ede99
lea ecx, [ebp - 0x2258]
mov dword [ebp - 4], 0xffffffff
call fcn.004d3390
lea ecx, [ebp - 0x22d8]
call fcn.004d6b40
test dword [edi + 0xf0], 0x200
mov dword [ebp - 4], 0x19
je 0x4ee71f
push 0
call fcn.0050b83e
add esp, 4
mov dword [ebp - 0x2294], edx
mov esi, eax
mov byte [ebp - 0x2278], 1
lea eax, [ebp - 0x22a4]
mov dword [ebp - 0x227c], esi
push eax
lea eax, [ebp - 0x2214]
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004da350
test al, al
je 0x4ee59f
mov eax, dword [ebp - 0x2294]
mov ecx, esi
sub ecx, dword [ebp - 0x22a4]
sbb eax, dword [ebp - 0x22a0]
mov dword [ebp - 0x2314], eax
jne 0x4ee59f
cmp ecx, 0x15180
jbe 0x4ee5a6
mov byte [ebp - 0x2278], 0
push dword [edi + 0x44]
call fcn.004024f0
add esp, 4
mov esi, eax
cmp byte [ebp - 0x2278], 0
jne 0x4ee5e3
push dword [ebp - 0x2294]
lea eax, [ebp - 0x2214]
push dword [ebp - 0x227c]
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004dc630
test esi, esi
je 0x4ee71f
push dword [ebp - 0x2278]
lea eax, [ebp - 0x2214]
push esi
push ebx
push dword [edi + 0xe0]
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004dd240
test eax, eax
je 0x4ee71f
mov ecx, dword [edi + 8]
call fcn.004e4410
mov dword [ebp - 0x2294], eax
test eax, eax
je 0x4ee71f
push 1
push 1
push 0x67
lea ecx, [ebp - 0x2258]
call fcn.004d3320
push 0
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 0x1a
call fcn.004d36b0
mov esi, eax
test esi, esi
je 0x4ee689
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x4ee689
mov ecx, eax
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4ee665
sub ecx, edx
mov edx, dword [esi]
lea eax, [ecx + 1]
mov ecx, esi
push eax
push dword [ebx + 0x14]
call dword [edx + 0x10]
mov eax, dword [esi]
mov ecx, esi
push 0
push 0
push 0
call dword [eax + 8]
push 1
lea ecx, [ebp - 0x2258]
call fcn.004d3730
lea ecx, [ebp - 0x2258]
mov dword [ebp - 0x227c], 1
mov byte [ebp - 4], 0x1b
call fcn.004d3710
mov ecx, dword [edi + 8]
call fcn.004e4400
mov ecx, dword [ebp - 0x2294]
mov esi, dword [ecx]
lea ecx, [ebp - 0x2258]
push ecx
mov ecx, dword [ebp - 0x2294]
push edx
push eax
call dword [esi + 0x24]
jmp 0x4ee6f7
mov dword [ebp - 4], 0x1a
sub eax, 3
je 0x4edf3b
sub eax, 1
je 0x4edf44
lea ecx, [ebp - 0x2258]
mov byte [ebp - 4], 0x19
call fcn.004d3390
mov eax, dword [edi + 0xf0]
test al, 0x20
push eax
lea eax, [ebp - 0x22d8]
push eax
lea eax, [ebp - 0x2214]
je 0x4ee762
push 0
push 1
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004da7b0
test al, al
jne 0x4ee77f
push ebx
call fcn.00434490
add esp, 4
jmp 0x4edf58
push ebx
push eax
call fcn.004ddcc0
mov ecx, eax
call fcn.004ddda0
mov ecx, eax
call fcn.004daa80
test al, al
je 0x4edf30
push ebx
call fcn.00434490
add esp, 4
lea eax, [ebp - 0x22d8]
lea ecx, [edi + 0x10]
push 0
push eax
movzx eax, byte [edi + 0xc]
push 1
push eax
call fcn.004fb970
test al, al
je 0x4edf58
test dword [edi + 0xf0], 0x2000
je 0x4ee830
lea eax, [ebp - 0x2290]
mov dword [ebp - 0x2290], 0
push eax
lea eax, [ebp - 0x227c]
push eax
push dword [edi + 0x44]
call fcn.00403140
add esp, 0xc
cmp dword [ebp - 0x2290], 0
jbe 0x4ee808
lea esi, [edi + 0xc8]
mov ecx, esi
call fcn.004d4430
push 1
push dword [ebp - 0x2290]
mov ecx, esi
push dword [ebp - 0x227c]
call fcn.004d4370
jmp 0x4ee814
mov esi, dword [ebp - 0x229c]
add esi, 0xc8
mov ecx, esi
call fcn.004d4510
test eax, eax
je 0x4ee830
push edi
push 0x4eb750
push dword [edi + 0x10]
call fcn.00403120
add esp, 0xc
test dword [edi + 0xf0], 0x100
je 0x4ee863
push str.tls_ac
mov ecx, edi
call fcn.004ec660
test al, al
jne 0x4ee863
push 0x52cdfc
push dword [edi + 0x1c]
call fcn.00402bd0
add esp, 8
mov byte [edi + 0xae], 1
lea ecx, [edi + 0x60]
call fcn.004d4510
push eax
lea ecx, [edi + 0x60]
call fcn.004d3710
push eax
push dword [edi + 0x14]
call fcn.0042c5d0
add esp, 0xc
test eax, eax
js 0x4edf58
push dword [edi + 0x1c]
call fcn.00404d00
add esp, 4
test eax, eax
jns 0x4ee8ac
push eax
push dword [edi + 0x1c]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4edf58
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ee90a
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ee8f5
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push dword [ebp - 0x2280]
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ee8c1
lea esi, [edi + 0x38]
mov ecx, edi
push esi
call fcn.004eb0d0
test eax, eax
js 0x4edf58
je 0x4ee946
jle 0x4ee935
push 1
push eax
lea ecx, [edi + 0x48]
call fcn.004d3710
push eax
lea ecx, [edi + 0x78]
call fcn.004d4370
push esi
mov ecx, edi
call fcn.004eb0d0
test eax, eax
jns 0x4ee91d
jmp 0x4edf58
lea ecx, [ebp - 0x22c0]
call fcn.004d4200
lea ecx, [ebp - 0x22d8]
call fcn.004d4200
mov dword [edi + 0x9c], 2
mov eax, 3
jmp 0x4ef9f8
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x4ee985
test esi, esi
jne 0x4eea12
inc dword [edi + 0xa4]
mov al, byte [edi + 0xa0]
mov edx, esi
test al, al
mov ebx, esi
cmovne edx, dword [ebp - 0x2278]
cmove ebx, dword [ebp - 0x2278]
test ecx, ecx
jle 0x4eea48
test edx, edx
jne 0x4eea48
test dword [edi + 0xf0], 0x8000
jne 0x4ec942
push ecx
push dword [ebp - 0x2288]
push dword [edi + 0x3c]
call fcn.0042c5d0
add esp, 0xc
lea esi, [edi + 0x38]
mov ecx, edi
push esi
call fcn.004eb0d0
test eax, eax
js 0x4ecf08
je 0x4eea25
jle 0x4ee9fc
push 1
push eax
lea ecx, [edi + 0x48]
call fcn.004d3710
push eax
lea ecx, [edi + 0x78]
call fcn.004d4370
push esi
mov ecx, edi
call fcn.004eb0d0
test eax, eax
jns 0x4ee9e4
mov eax, 4
jmp 0x4ef9f8
push 1
mov ecx, edi
call fcn.004eb280
mov eax, 4
jmp 0x4ef9f8
push dword [edi + 0x44]
call fcn.00403e80
add esp, 4
test eax, eax
je 0x4ec942
inc dword [edi + 0xa4]
mov eax, 3
jmp 0x4ef9f8
push ecx
push dword [ebp - 0x2288]
push dword [edi + 0x14]
call fcn.0042c5d0
push dword [edi + 0x1c]
call fcn.00403e90
add esp, 0x10
cmp eax, 3
je 0x4eeb18
push dword [edi + 0x1c]
call fcn.00404d00
mov esi, eax
add esp, 4
test esi, esi
jns 0x4eea93
push esi
push dword [edi + 0x1c]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4ecf3e
test esi, esi
jne 0x4eeaa9
push dword [edi + 0x1c]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4eeb04
nop
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4eeaef
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4eeac0
push dword [edi + 0x1c]
call fcn.00403e90
add esp, 4
cmp eax, 3
jne 0x4ec942
mov dword [edi + 0x9c], 3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
test dword [edi + 0xf0], 0x8000
mov dword [edi + 0xec], eax
jne 0x4eeb6c
lea ecx, [edi + 0x78]
call fcn.004d4510
test eax, eax
je 0x4eeb6c
lea ecx, [edi + 0x78]
call fcn.004d4510
push eax
lea ecx, [edi + 0x78]
call fcn.004d3710
mov ecx, dword [edi + 8]
push eax
push ebx
push 0
push edi
call fcn.004e4d00
lea ecx, [edi + 0x78]
call fcn.004d4430
lea ecx, [edi + 0x60]
call fcn.004d4430
lea eax, [edi + 0x10]
mov ecx, edi
push eax
call fcn.004eb1a0
test eax, eax
js 0x4ecf08
je 0x4eebc1
jle 0x4eeba8
cmp dword [edi + 0xa4], 0
jne 0x4eeba8
push 1
push eax
lea ecx, [edi + 0x20]
call fcn.004d3710
push eax
lea ecx, [edi + 0x60]
call fcn.004d4370
lea eax, [edi + 0x10]
mov ecx, edi
push eax
call fcn.004eb1a0
test eax, eax
jns 0x4eeb87
mov eax, 4
jmp 0x4ef9f8
lea ecx, [edi + 0x60]
call fcn.004d4510
test eax, eax
je 0x4eebff
lea ecx, [edi + 0x60]
call fcn.004d4510
push eax
lea ecx, [edi + 0x60]
call fcn.004d3710
mov ecx, dword [edi + 8]
push eax
push dword [ebp - 0x2280]
push 0
push edi
call fcn.004e4d00
lea ecx, [edi + 0x60]
call fcn.004d4430
mov byte [edi + 0xe8], 0
cmp dword [edi + 0xa4], 0
jle 0x4ec942
mov ecx, dword [edi + 8]
push 0
push 0
push ebx
push 0
push edi
call fcn.004e4d00
mov eax, 3
jmp 0x4ef9f8
mov ecx, dword [ebp + 0x14]
test ecx, ecx
jne 0x4eec3b
test esi, esi
jne 0x4eea12
inc dword [edi + 0xa4]
mov al, byte [edi + 0xa0]
mov ebx, esi
mov esi, dword [ebp - 0x2278]
test al, al
mov eax, dword [ebp - 0x2280]
cmovne ebx, esi
cmove eax, esi
mov dword [ebp - 0x2278], ebx
mov dword [ebp - 0x2280], eax
test ecx, ecx
jle 0x4eecc2
test ebx, ebx
jne 0x4eecc2
push ecx
push dword [ebp - 0x2288]
push dword [edi + 0x3c]
call fcn.0042c5d0
add esp, 0xc
lea esi, [edi + 0x38]
mov ecx, edi
push esi
call fcn.004eb0d0
test eax, eax
js 0x4ecf08
je 0x4eea25
jle 0x4eecac
push 1
push eax
lea ecx, [edi + 0x48]
call fcn.004d3710
push eax
lea ecx, [edi + 0x78]
call fcn.004d4370
push esi
mov ecx, edi
call fcn.004eb0d0
test eax, eax
jns 0x4eec90
mov eax, 4
jmp 0x4ef9f8
push ecx
push dword [ebp - 0x2288]
push dword [edi + 0x14]
call fcn.0042c5d0
push dword [edi + 0x1c]
call fcn.00403e90
add esp, 0x10
cmp eax, 3
je 0x4eed9e
push dword [edi + 0x1c]
call fcn.00404d00
mov esi, eax
add esp, 4
test esi, esi
jns 0x4eed0d
push esi
push dword [edi + 0x1c]
call fcn.00404760
add esp, 8
cmp eax, 2
jne 0x4ecf3e
test esi, esi
jne 0x4eed23
push dword [edi + 0x1c]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4eed8a
mov ebx, dword [ebp - 0x2280]
nop
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4eed6f
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4eed40
mov ebx, dword [ebp - 0x2278]
push dword [edi + 0x1c]
call fcn.00403e90
add esp, 4
cmp eax, 3
jne 0x4ec942
cmp byte [edi + 0xac], 0
je 0x4ef094
push dword [edi + 0x1c]
call fcn.004024b0
mov esi, eax
add esp, 4
test esi, esi
je 0x4eefee
lea ecx, [ebp - 0x2244]
call fcn.004d41d0
push 0
push esi
mov dword [ebp - 4], 0x1d
call fcn.00434460
add esp, 8
lea ecx, [ebp - 0x2244]
push eax
call fcn.004d4460
test al, al
jne 0x4eee0b
push esi
call fcn.00434490
add esp, 4
lea ecx, [ebp - 0x2244]
call fcn.004d4200
mov eax, 4
jmp 0x4ef9f8
lea ecx, [ebp - 0x2244]
call fcn.004d3710
mov dword [ebp - 0x227c], eax
lea eax, [ebp - 0x227c]
push eax
push esi
call fcn.00434460
push esi
call fcn.00434490
mov ecx, dword [edi + 8]
lea eax, [ebp - 0x22e8]
add esp, 0xc
mov dword [ebp - 0x229c], 0
mov dword [ebp - 0x2294], 0
push eax
call fcn.004e4440
push dword [ebp - 0x22e4]
or ebx, 0xffffffff
mov dword [ebp - 0x2298], 0
push 0
push 0x2000000
mov dword [ebp - 0x2288], ebx
mov byte [ebp - 0x2281], 0
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x22a0], eax
test eax, eax
je 0x4eef62
lea ecx, [ebp - 0x2298]
push ecx
push 0x2000000
push eax
call dword [sym.imp.ADVAPI32.dll_OpenProcessToken]
test eax, eax
je 0x4eef4b
mov eax, dword [ebp - 0x2298]
test eax, eax
je 0x4eef4b
lea ecx, [ebp - 0x2290]
mov dword [ebp - 0x2290], 0
push ecx
push 1
push 1
push 0
push 0x2000000
push eax
call dword [sym.imp.ADVAPI32.dll_DuplicateTokenEx]
test eax, eax
je 0x4eef2c
mov eax, dword [ebp - 0x2290]
test eax, eax
je 0x4eef2c
push eax
call dword [sym.imp.ADVAPI32.dll_ImpersonateLoggedOnUser]
movzx ecx, byte [ebp - 0x2281]
test eax, eax
mov ebx, dword [ebp - 0x2290]
mov edx, 1
push dword [ebp - 0x2298]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmove ecx, edx
mov byte [ebp - 0x228c], cl
mov dword [ebp - 0x2288], ebx
call esi
push dword [ebp - 0x22a0]
call esi
jmp 0x4eef6f
push dword [ebp - 0x2298]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x228c], 1
call esi
push dword [ebp - 0x22a0]
call esi
jmp 0x4eef6f
push dword [ebp - 0x22a0]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x228c], 1
call esi
jmp 0x4eef6f
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [ebp - 0x228c], 1
lea eax, [ebp - 0x2294]
mov byte [ebp - 4], 0x1e
push eax
lea eax, [ebp - 0x229c]
push eax
lea ecx, [ebp - 0x2244]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x2244]
call fcn.004d3710
push eax
call fcn.004ebfb0
add esp, 0x10
test al, al
je 0x4eefbf
mov eax, dword [ebp - 0x229c]
mov dword [edi + 0x90], eax
mov eax, dword [ebp - 0x2294]
mov dword [edi + 0x94], eax
jmp 0x4eefc8
push 0
mov ecx, edi
call fcn.004eb280
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
cmp ebx, 0xffffffff
je 0x4eefd6
push ebx
call esi
lea ecx, [ebp - 0x2244]
mov dword [ebp - 4], 0xffffffff
call fcn.004d4200
mov ebx, dword [ebp - 0x2278]
push dword [edi + 0x44]
call fcn.00404d30
mov esi, eax
add esp, 4
test esi, esi
jns 0x4ef01b
push esi
push dword [edi + 0x44]
call fcn.00404760
add esp, 8
cmp eax, 2
je 0x4ef019
cmp eax, 4
jne 0x4ecf08
test esi, esi
jne 0x4ef031
push dword [edi + 0x44]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ef094
nop word [eax + eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ef07f
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ef050
mov byte [edi + 0xac], 0
mov dword [edi + 0x9c], 3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [edi + 0x60]
mov dword [edi + 0xec], eax
call fcn.004d4430
mov eax, 3
jmp 0x4ef9f8
mov ecx, edi
call fcn.004ec4f0
test al, al
jne 0x4ecf08
cmp dword [ebp + 0x14], ebx
jne 0x4ef1e9
cmp byte [edi + 0xe8], bl
je 0x4ef179
cmp dword [edi + 0x148], ebx
lea eax, [edi + 0x138]
je 0x4ef179
push eax
lea ecx, [ebp - 0x2274]
call fcn.004a4e50
cmp dword [ebp - 0x2260], 0x10
lea eax, [ebp - 0x2274]
mov dword [ebp - 4], 0x1f
cmovae eax, dword [ebp - 0x2274]
push eax
call fcn.0050c19c
add esp, 4
lea ecx, [ebp - 0x2274]
push 0
push str.surfeasy.com
call fcn.004a3c90
cmp eax, 0xffffffff
jne 0x4ef157
push 0
push str.opera_proxy.net
lea ecx, [ebp - 0x2274]
call fcn.004a3c90
cmp eax, 0xffffffff
je 0x4ef167
push 1
mov ecx, edi
call fcn.004eb280
mov byte [edi + 0xad], 0
lea ecx, [ebp - 0x2274]
mov dword [ebp - 4], 0xffffffff
call fcn.004a4f70
mov ecx, dword [edi + 8]
push 0
push 0
push esi
push 0
push edi
call fcn.004e4d00
test esi, esi
jne 0x4ef1b8
cmp dword [edi + 0xa4], esi
jne 0x4ec942
mov ecx, dword [edi + 8]
push esi
push esi
push esi
push esi
push edi
call fcn.004e4d00
mov dword [edi + 0xa4], 1
lea eax, [esi + 3]
jmp 0x4ef9f8
cmp dword [edi + 0xa8], 0
jne 0x4ec942
mov ecx, dword [edi + 8]
push 0
push 0
push esi
push 0
push edi
call fcn.004e4d00
mov dword [edi + 0xa8], 1
mov eax, 3
jmp 0x4ef9f8
mov al, byte [edi + 0xe8]
lea ecx, [ebp - 0x222c]
mov edx, dword [ebp - 0x2280]
mov byte [ebp - 0x2281], al
mov al, byte [edi + 0xa0]
test al, al
mov byte [edi + 0xe8], bl
cmove edx, dword [ebp - 0x2278]
cmovne esi, dword [ebp - 0x2278]
mov dword [ebp - 0x2278], edx
call fcn.004d41d0
mov dword [ebp - 4], 0x20
test esi, esi
jne 0x4ef67b
test dword [edi + 0xf0], 0x8000
je 0x4ef271
push dword [ebp + 0x14]
mov ecx, dword [edi + 8]
push dword [ebp - 0x2288]
push dword [ebp - 0x2280]
push esi
push edi
call fcn.004e4d00
lea ecx, [ebp - 0x222c]
call fcn.004d4200
mov eax, 3
jmp 0x4ef9f8
push dword [edi + 0x44]
call fcn.00403e90
add esp, 4
cmp eax, 3
je 0x4ef3af
push dword [ebp + 0x14]
push dword [ebp - 0x2288]
push dword [edi + 0x3c]
call fcn.0042c5d0
push dword [edi + 0x44]
call fcn.00404d30
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x4ef2d4
push esi
push dword [edi + 0x44]
call fcn.00404760
add esp, 8
cmp eax, 2
je 0x4ef2d2
cmp eax, 4
je 0x4ef2d2
lea ecx, [ebp - 0x222c]
call fcn.004d4200
mov eax, 4
jmp 0x4ef9f8
test esi, esi
jne 0x4ef2ea
push dword [edi + 0x44]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
mov ebx, dword [ebp - 0x2278]
add esp, 0x10
test eax, eax
je 0x4ef354
nop word [eax + eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ef33f
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ef310
push dword [edi + 0x44]
call fcn.00403e90
add esp, 4
cmp eax, 3
jne 0x4ef25c
lea ecx, [edi + 0x60]
call fcn.004d4510
test eax, eax
je 0x4ef39a
lea ecx, [edi + 0x60]
call fcn.004d4510
lea ecx, [edi + 0x60]
push eax
call fcn.004d3710
mov ecx, dword [edi + 8]
push eax
push ebx
push 0
push edi
call fcn.004e4d00
lea ecx, [edi + 0x60]
call fcn.004d4430
lea ecx, [ebp - 0x222c]
call fcn.004d4200
mov eax, 3
jmp 0x4ef9f8
lea ecx, [edi + 0x78]
call fcn.004d4510
test eax, eax
je 0x4ef3e2
push 1
lea ecx, [edi + 0x78]
call fcn.004d4510
push eax
lea ecx, [edi + 0x78]
call fcn.004d3710
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d4370
lea ecx, [edi + 0x78]
call fcn.004d4430
mov esi, dword [ebp + 0x14]
test esi, esi
jle 0x4ef454
nop dword [eax]
mov eax, esi
sub eax, ebx
push eax
mov eax, dword [ebp - 0x2288]
add eax, ebx
push eax
push dword [edi + 0x3c]
call fcn.0042c5d0
add esp, 0xc
test eax, eax
jle 0x4ef2bd
mov ecx, dword [edi + 8]
add ebx, eax
call fcn.004e4400
lea ecx, [edi + 0x38]
nop
push ecx
mov ecx, edi
call fcn.004eb0d0
test eax, eax
js 0x4ef2bd
je 0x4ef450
lea ecx, [edi + 0x38]
jle 0x4ef420
push 1
push eax
lea ecx, [edi + 0x48]
call fcn.004d3710
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d4370
jmp 0x4ef41b
cmp ebx, esi
jl 0x4ef3f0
push dword [edi + 0x44]
call fcn.00402640
add esp, 4
test eax, eax
je 0x4ef519
push dword [edi + 0x44]
call fcn.00404d30
mov esi, eax
add esp, 4
test esi, esi
jns 0x4ef494
push esi
push dword [edi + 0x44]
call fcn.00404760
add esp, 8
cmp eax, 2
je 0x4ef492
cmp eax, 4
jne 0x4ef2bd
test esi, esi
jne 0x4ef4aa
push dword [edi + 0x44]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
mov ebx, dword [ebp - 0x2278]
add esp, 0x10
test eax, eax
je 0x4ef354
nop dword [eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ef4ff
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ef4d0
jmp 0x4ef354
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ef578
mov ebx, dword [ebp - 0x2278]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x40]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ef563
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x40]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ef534
lea ecx, [ebp - 0x222c]
call fcn.004d4510
test eax, eax
je 0x4ef5cc
lea ecx, [ebp - 0x222c]
call fcn.004d4510
cmp eax, 0x100
jae 0x4ef64c
mov eax, dword [edi + 0x44]
cmp dword [eax + 0x50], 0
jbe 0x4ef64c
push 1
lea ecx, [ebp - 0x222c]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d3710
push eax
lea ecx, [edi + 0x78]
call fcn.004d4370
mov ebx, dword [ebp - 0x2280]
push dword [edi + 0x44]
call fcn.00403e80
add esp, 4
test eax, eax
je 0x4ef5fb
mov ecx, dword [edi + 8]
push 0
push 0
push ebx
push 0
push edi
call fcn.004e4d00
mov dword [edi + 0xa4], 1
cmp byte [edi + 0xad], 0
je 0x4ef39a
push str.tls_ac
mov ecx, edi
mov byte [edi + 0xad], 0
call fcn.004ebbd0
push str.tls1_0
mov ecx, edi
call fcn.004ebbd0
push 0
mov ecx, edi
call fcn.004ebbd0
mov ecx, edi
call fcn.004eb790
lea ecx, [ebp - 0x222c]
call fcn.004d4200
mov eax, 3
jmp 0x4ef9f8
lea ecx, [ebp - 0x222c]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d3710
mov ebx, dword [ebp - 0x2280]
mov ecx, dword [edi + 8]
push eax
push ebx
push 0
push edi
call fcn.004e4d00
jmp 0x4ef5d2
push dword [edi + 0x1c]
call fcn.00403e90
add esp, 4
cmp eax, 3
je 0x4ef798
push dword [ebp + 0x14]
push dword [ebp - 0x2288]
push dword [edi + 0x14]
call fcn.0042c5d0
push dword [edi + 0x1c]
call fcn.00404d00
mov esi, eax
add esp, 0x10
test esi, esi
jns 0x4ef6d6
push esi
push dword [edi + 0x1c]
call fcn.00404760
add esp, 8
cmp eax, 2
je 0x4ef6d4
lea ecx, [ebp - 0x222c]
call fcn.004d4200
xor eax, eax
jmp 0x4ef9f8
test esi, esi
jne 0x4ef6ec
push dword [edi + 0x1c]
call fcn.00404310
add esp, 4
mov ecx, edi
push 1
call fcn.004eb280
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
mov ebx, dword [ebp - 0x2278]
add esp, 0x10
test eax, eax
je 0x4ef754
nop word [eax + eax]
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ef73f
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ef710
push dword [edi + 0x1c]
call fcn.00403e90
add esp, 4
cmp eax, 3
jne 0x4ef25c
test dword [edi + 0xf0], 0x8000
jne 0x4ef39a
lea ecx, [edi + 0x78]
call fcn.004d4510
test eax, eax
je 0x4ef39a
lea ecx, [edi + 0x78]
call fcn.004d4510
lea ecx, [edi + 0x78]
jmp 0x4ef37f
lea ecx, [edi + 0x60]
call fcn.004d4510
test eax, eax
je 0x4ef7cb
push 1
lea ecx, [edi + 0x60]
call fcn.004d4510
push eax
lea ecx, [edi + 0x60]
call fcn.004d3710
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d4370
lea ecx, [edi + 0x60]
call fcn.004d4430
mov esi, dword [ebp + 0x14]
test esi, esi
jle 0x4ef834
mov eax, esi
sub eax, ebx
push eax
mov eax, dword [ebp - 0x2288]
add eax, ebx
push eax
push dword [edi + 0x14]
call fcn.0042c5d0
add esp, 0xc
test eax, eax
jle 0x4ef2bd
mov ecx, dword [edi + 8]
add ebx, eax
call fcn.004e4400
lea ecx, [edi + 0x10]
push ecx
mov ecx, edi
call fcn.004eb1a0
test eax, eax
js 0x4ef2bd
je 0x4ef830
lea ecx, [edi + 0x10]
jle 0x4ef800
push 1
push eax
lea ecx, [edi + 0x20]
call fcn.004d3710
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d4370
jmp 0x4ef7fd
cmp ebx, esi
jl 0x4ef7d2
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
je 0x4ef894
mov ebx, dword [ebp - 0x2278]
nop
push 0x2000
lea eax, [ebp - 0x2214]
push eax
push dword [edi + 0x18]
call fcn.0042c510
add esp, 0xc
test eax, eax
jle 0x4ef87f
mov ecx, dword [edi + 8]
push eax
lea eax, [ebp - 0x2214]
push eax
push ebx
push 1
push edi
call fcn.004e4d00
push 0
push 0
push 0xa
push dword [edi + 0x18]
call fcn.0042c840
add esp, 0x10
test eax, eax
jne 0x4ef850
lea ecx, [ebp - 0x222c]
call fcn.004d4510
test eax, eax
je 0x4ef904
lea ecx, [ebp - 0x222c]
call fcn.004d4510
cmp eax, 0x100
jae 0x4ef8be
mov eax, dword [edi + 0x1c]
cmp dword [eax + 0x50], 0
ja 0x4ef8e2
test dword [edi + 0xf0], 0x8000
jne 0x4ef9ad
push dword [edi + 0x44]
call fcn.00403e90
add esp, 4
cmp eax, 3
je 0x4ef9ad
push 1
lea ecx, [ebp - 0x222c]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d3710
push eax
lea ecx, [edi + 0x60]
call fcn.004d4370
mov ebx, dword [ebp - 0x2280]
push dword [edi + 0x1c]
call fcn.00403e80
add esp, 4
test eax, eax
je 0x4ef95f
cmp byte [ebp - 0x2281], 0
je 0x4ef945
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xec]
cmp eax, 0x3e8
jae 0x4ef945
push 1
mov ecx, edi
call fcn.004eb280
mov byte [edi + 0xad], 0
mov ecx, dword [edi + 8]
push 0
push 0
push ebx
push 0
push edi
call fcn.004e4d00
mov dword [edi + 0xa8], 1
cmp byte [edi + 0xad], 0
je 0x4ef39a
push str.tls_ac
mov ecx, edi
mov byte [edi + 0xad], 0
call fcn.004ebbd0
push str.tls1_0
mov ecx, edi
call fcn.004ebbd0
push 0
mov ecx, edi
call fcn.004ebbd0
mov ecx, edi
call fcn.004eb790
lea ecx, [ebp - 0x222c]
call fcn.004d4200
mov eax, 3
jmp 0x4ef9f8
lea ecx, [ebp - 0x222c]
call fcn.004d4510
push eax
lea ecx, [ebp - 0x222c]
call fcn.004d3710
mov ebx, dword [ebp - 0x2280]
mov ecx, dword [edi + 8]
push eax
push ebx
push 0
push edi
call fcn.004e4d00
jmp 0x4ef90a
mov ecx, dword [edi + 8]
push 0
push 0
push esi
push 0
push edi
call fcn.004e4d00
mov eax, 3
jmp 0x4ef9f8
mov eax, 2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004fbc95
mov esp, ebp
pop ebp
ret 0x10