Function at 0x4ce424
Capabilities:
Enumerate pe sections
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x20
push 0
push 0
dec ecx
jne 0x4ce42c
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4d0f7d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d0]
mov byte [eax], 0
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x64]
cmp eax, 0x22
ja case.0x4ce46c.0
mov al, byte [eax + 0x4ce473]
jmp dword [eax*4 + 0x4ce496]
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x2e3d]
cmp byte [ebx + 4], 1
jne 0x4ce758
lea eax, [ebp - 0x34]
push eax
mov cl, byte [ebx + 0x21]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4ce532
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31d8]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
movzx eax, word [ebx + 0x21]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
movzx eax, word [ebx + 2]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebx + 7]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
add eax, 4
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
test word [ebx + 5], 0x1000
jbe 0x4ce5be
mov eax, dword [ebx + 7]
xor edx, edx
mov ecx, dword [ebp - 4]
add dword [ecx + 0x31f0], eax
adc dword [ecx + 0x31f4], edx
jmp 0x4ce5d2
mov eax, dword [ebx + 7]
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f0], eax
mov dword [ecx + 0x31f4], edx
mov eax, dword [ebx + 0xb]
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f8], eax
mov dword [ecx + 0x31fc], edx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4ce660
test dword [ebx + 0x13], 0x10
jle 0x4ce62e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4ce660
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4ce660
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 7]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0xb]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
test byte [ebx + 6], 0x10
jne 0x4ce660
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
test word [ebx + 5], 0x2000
jbe 0x4d0f17
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x50c]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0049c11c
test al, al
jne 0x4ce693
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x44]
jmp 0x4d0f17
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c8], 0
mov dword [eax + 0x4cc], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x4e0], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x4e4], ecx
mov eax, dword [ebp - 4]
push dword [eax + 0x4cc]
push dword [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 4]
lea edx, [eax + 0x569]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0x1f
mov esi, dword [eax]
call dword [esi + 8]
mov eax, dword [ebx + 7]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0xb]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce2d4
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x56b]
add eax, 4
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
push dword [eax + 0x4cc]
push dword [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x588]
cmp byte [ebx], 0x1a
jne 0x4ce925
mov al, byte [ebx + 1]
cmp al, 0x1f
je 0x4ce798
test al, al
jne 0x4ce7bb
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
lea eax, [ebp - 0x38]
push eax
lea eax, [ebp - 0x3c]
lea edx, [ebx + 2]
mov ecx, 0xd
call fcn.0040491c
mov edx, dword [ebp - 0x3c]
mov eax, 0x4d0f94
call fcn.00404e20
dec eax
push eax
lea eax, [ebp - 0x40]
lea edx, [ebx + 2]
mov ecx, 0xd
call fcn.0040491c
mov eax, dword [ebp - 0x40]
mov edx, 1
pop ecx
call fcn.00404d3c
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
cmp byte [ebx + 1], 0x1e
jne 0x4ce845
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.00492030
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
add eax, 0x31c0
call fcn.00404aec
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.0040482c
xor eax, eax
mov dword [ebx + 0xf], eax
xor eax, eax
mov dword [ebx + 0x19], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x31c0]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404b30
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4ce88c
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4ce8fd
cmp byte [ebx + 1], 0x1e
jne 0x4ce8d1
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4ce8fd
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4ce8fd
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 0xf]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x19]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebx + 0xf]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x5c8]
cmp word [esi], 0xea60
jne 0x4ce95f
cmp word [esi + 2], 0
jne 0x4ce982
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
movzx ecx, word [esi + 2]
lea edx, [esi + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ebx, dword [eax]
call dword [ebx + 8]
mov bl, byte [esi + 4]
lea eax, [esi + 4]
xor edx, edx
mov dl, bl
add eax, edx
lea edx, [ebp - 0x48]
call fcn.0040a080
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4ce9da
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [edi + 0x321c]
call dword [edi + 0x3218]
movzx eax, word [esi + 2]
xor edx, edx
mov ecx, dword [ebp - 4]
add dword [ecx + 0x4c8], eax
adc dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 2
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 4
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f0], eax
mov dword [ecx + 0x31f4], edx
mov eax, dword [esi + 0x14]
xor edx, edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f8], eax
mov dword [ecx + 0x31fc], edx
mov al, byte [esi + 8]
and al, 4
cmp al, 4
jne 0x4cecd9
mov byte [esi + 8], 0
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x50c]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0049c11c
test al, al
jne 0x4ceaba
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x44]
jmp 0x4d0f17
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c8], 0
mov dword [eax + 0x4cc], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x4e0], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x4e4], ecx
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x31d8]
mov edx, esi
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edi, dword [eax]
call dword [edi + 8]
movzx ecx, word [esi + 2]
lea edx, [esi + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov edi, dword [eax]
call dword [edi + 8]
movzx eax, word [esi + 2]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x31d8]
xor edx, edx
mov ecx, dword [ebp - 4]
add dword [ecx + 0x4c8], eax
adc dword [ecx + 0x4cc], edx
cmp word [esi], 0xea60
jne 0x4cec13
test byte [esi + 8], 4
seta al
mov edx, dword [ebp - 4]
mov byte [edx + 0x31cc], al
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 2
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 4
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
push dword [eax + 0x4cc]
push dword [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x31d8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x5c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5c8]
movzx ecx, word [eax + 2]
lea edx, [eax + 4]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ebx, dword [eax]
call dword [ebx + 8]
mov bl, byte [esi + 4]
movzx eax, word [esi + 2]
mov edx, dword [ebp - 4]
add eax, dword [edx + 0x31d8]
xor edx, edx
mov ecx, dword [ebp - 4]
add dword [ecx + 0x4c8], eax
adc dword [ecx + 0x4cc], edx
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [ebp - 4]
add dword [ecx + 0x31f0], eax
adc dword [ecx + 0x31f4], edx
mov eax, dword [esi + 0x14]
xor edx, edx
mov ecx, dword [ebp - 4]
add dword [ecx + 0x31f8], eax
adc dword [ecx + 0x31fc], edx
test byte [esi + 8], 4
jne 0x4cea93
cmp word [esi], 0xea60
jne 0x4cecf2
lea eax, [esi + 4]
xor edx, edx
mov dl, bl
add eax, edx
lea edx, [ebp - 0x4c]
call fcn.0040a080
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 4
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 2
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [esi + 0x10]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4cecf2
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31cc], 0
je 0x4cecf2
mov al, byte [esi + 8]
and al, 8
cmp al, 8
je 0x4d0f17
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31f0]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31f8]
mov dword [esi + 0x14], eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4d0f17
cmp byte [esi + 0xa], 3
jne 0x4ced5a
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4d0f17
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0f17
mov eax, dword [esi + 0x10]
xor edx, edx
push edx
push eax
mov eax, dword [esi + 0x14]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x2e60]
cmp dword [ebx], 0x7054842
jne 0x4ceeb2
cmp word [ebx + 4], 0
jne 0x4cedca
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
lea eax, [ebp - 0x50]
push eax
mov cl, byte [ebx + 0x21]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cee17
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4cee8a
test word [ebx + 0x1b], 0x10
jbe 0x4cee5e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4cee8a
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4cee8a
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 0xf]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x13]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebx + 0xf]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
cmp word [0x5895b4], 0
jne 0x4cf0f7
mov ax, word [0x5895b6]
and ax, 2
cmp ax, 2
jne 0x4cf0d4
lea edx, [ebp - 0x58]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
call fcn.004099fc
mov eax, dword [ebp - 0x58]
lea edx, [ebp - 0x54]
call fcn.00492030
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
add eax, 0x50c
mov ecx, dword [0x5895d4]
call fcn.00404b30
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x60]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x50c]
call fcn.00408e08
test eax, eax
jne 0x4cef61
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
lea eax, [ebp - 0x68]
mov edx, dword [0x5895d8]
call fcn.004058f4
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x50c]
mov eax, dword [ebp - 4]
call fcn.0049becc
test al, al
jne 0x4cef96
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x44]
jmp 0x4d0f17
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00403a80
push 0x40
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x50c]
mov dl, 1
mov eax, dword [0x490140]
call fcn.0049064c
mov edx, dword [ebp - 8]
mov dword [edx], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
cmp dword [eax + 4], 0
jge 0x4cf039
push 0x4d0fa0
push 0x6293
lea edx, [ebp - 0x6c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x30]
mov edx, dword [ebp - 0x6c]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x98]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4e0], eax
mov dword [ecx + 0x4e4], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00403a80
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax], edx
jmp 0x4d0f17
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4e0], eax
mov dword [ecx + 0x4e4], edx
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
call fcn.004cbdc0
test al, al
jne 0x4cf0a8
mov eax, dword [0x5895d8]
push eax
push 0x621a
xor ecx, ecx
mov edx, dword [0x5895d4]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x98]
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [0x5895bc]
cdq
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [0x5895a8]
cdq
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
lea ecx, [ebp - 0x70]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492944
mov edx, dword [ebp - 0x70]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cf140
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x321c]
call dword [ebx + 0x3218]
dec word [0x5895b4]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4d0f17
mov eax, dword [ebp - 4]
test word [eax + 0x353], 0x10
jbe 0x4cf19f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4d0f17
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0f17
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x345]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x345]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x3190]
cmp byte [ebx], 0x1a
jne 0x4cf324
cmp byte [ebx + 1], 0
jne 0x4cf217
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
lea edx, [ebx + 2]
mov ecx, 0xd
call fcn.0040491c
mov edx, dword [ebp - 0x78]
mov eax, 0x4d0f94
call fcn.00404e20
dec eax
push eax
lea eax, [ebp - 0x7c]
lea edx, [ebx + 2]
mov ecx, 0xd
call fcn.0040491c
mov eax, dword [ebp - 0x7c]
mov edx, 1
pop ecx
call fcn.00404d3c
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cf28b
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4cf2fc
cmp byte [ebx + 1], 0x1e
jne 0x4cf2d0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4cf2fc
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4cf2fc
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 0xf]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x19]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebx + 0xf]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x2e85]
lea ecx, [ebp - 0x80]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492944
mov edx, dword [ebp - 0x80]
lea eax, [ebx + 0x12]
call fcn.00404880
lea ecx, [ebp - 0x84]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492944
mov edx, dword [ebp - 0x84]
lea eax, [ebx + 0x16]
call fcn.00404880
mov edx, dword [ebx + 0x16]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cf3cb
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4cf41b
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 2]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 6]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2e87]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
add eax, 2
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
add eax, 0x2ea4
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0
jne 0x4cf485
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 0x28]
mov al, byte [eax + 0x14]
sub al, 2
jb 0x4cf496
je 0x4cf4f7
jmp 0x4cf5c9
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x28]
mov cl, byte [eax + 0x15]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0x88]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
push dword [eax + 0x4cc]
push dword [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 0x28]
lea edx, [eax + 0x1a]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 5
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4cf5ec
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
sub eax, 1
sbb edx, 0
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 0x28]
lea edx, [eax + 0x1a]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 2
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x28]
lea edx, [eax + 0x24]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 1
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x28]
lea edx, [eax + 0x15]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 1
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 4]
add dword [eax + 0x4c8], 5
adc dword [eax + 0x4cc], 0
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x28]
mov cl, byte [eax + 0x15]
sub cl, 3
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0x8c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
push dword [eax + 0x4cc]
push dword [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 0x28]
lea edx, [eax + 0x1d]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 2
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4cf5ec
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cf614
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x321c]
call dword [ebx + 0x3218]
mov eax, pe_nt_image_headers32
call fcn.00402788
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x4cf6f0
push dword fs:[edx]
mov dword fs:[edx], esp
jmp 0x4cf6c4
movzx ecx, ax
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0xc]
mov al, byte [eax]
sub al, 2
je 0x4cf64f
jmp 0x4cf6ac
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0040a080
lea edx, [ebp - 0x90]
mov eax, dword [ebp - 0x10]
call fcn.0049227c
mov edx, dword [ebp - 0x90]
mov eax, dword [ebp - 0x28]
add eax, 0x1f
call fcn.00404880
lea edx, [ebp - 0x94]
mov eax, dword [ebp - 0x28]
mov eax, dword [eax + 0x1f]
call fcn.00492030
lea eax, [ebp - 0x94]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x4c0]
call fcn.00404aec
mov edx, dword [ebp - 0x94]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 0x28]
movzx eax, word [eax + 0x1d]
mov edx, dword [ebp - 0xc]
lea eax, [edx + eax - 2]
mov ax, word [eax]
mov edx, dword [ebp - 0x28]
mov word [edx + 0x1d], ax
mov eax, dword [ebp - 0x28]
mov ax, word [eax + 0x1d]
test ax, ax
jbe 0x4cf6da
cmp ax, 0x100
jb 0x4cf634
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cf6f7
mov eax, dword [ebp - 0xc]
call fcn.004027a8
ret
mov eax, dword [ebp - 4]
add eax, 0x5da
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 2], 0x75
jne 0x4cf87c
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31d8]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + 5]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + 3]
and ax, 0x8000
cmp ax, 0x8000
jne 0x4cf8a3
mov eax, dword [ebp - 0x2c]
cmp word [eax + 5], 0
je 0x4cf8a3
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x40]
test al, al
je 0x4cf8c6
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + 3]
and ax, 0x4000
cmp ax, 0x4000
je 0x4cf8e0
mov eax, dword [ebp - 0x2c]
cmp byte [eax + 2], 0x74
je 0x4cf942
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31d8]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + 5]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 7]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 0x2c]
test word [eax + 3], 0x100
jbe 0x4cf9a6
mov eax, dword [ebp - 4]
push dword [eax + 0x4cc]
push dword [eax + 0x4c8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3228]
call fcn.004199dc
lea edx, [ebp - 0x22]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3228]
mov ecx, 8
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 8
adc edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4cf9b3
lea eax, [ebp - 0x22]
mov edx, 8
call fcn.00407ae0
mov eax, dword [ebp - 0x2c]
test byte [eax + 4], 2
jne 0x4cf9ef
lea eax, [ebp - 0x98]
push eax
mov eax, dword [ebp - 0x2c]
mov cl, byte [eax + 0x1a]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0x98]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
jmp 0x4cfaa5
lea eax, [ebp - 0x9c]
push eax
mov eax, dword [ebp - 0x2c]
mov cl, byte [eax + 0x1a]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x46c]
mov byte [ebp - 0x19], al
mov eax, dword [ebp - 4]
mov byte [eax + 0x46c], 0
xor eax, eax
push ebp
push 0x4cfa9e
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xa4]
push eax
mov eax, dword [ebp - 0x2c]
mov cx, word [eax + 0x1a]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c0]
mov eax, dword [ebp - 4]
call fcn.0049a054
mov edx, dword [ebp - 0xa4]
lea eax, [ebp - 0xa0]
call fcn.00404aac
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4cfaa5
mov eax, dword [ebp - 4]
mov dl, byte [ebp - 0x19]
mov byte [eax + 0x46c], dl
ret
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cfacd
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x321c]
call dword [ebx + 0x3218]
mov eax, dword [ebp - 0x1e]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0xb]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f8], eax
mov dword [ecx + 0x31fc], edx
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x5e9]
cmp ax, 3
jne 0x4cfb2c
mov eax, dword [ebp - 4]
test byte [eax + 0x5f7], 0x40
jne 0x4cfb20
mov eax, dword [ebp - 0x2c]
mov dword [eax + 0x1c], 0x20
jmp 0x4cfb3b
mov eax, dword [ebp - 0x2c]
mov dword [eax + 0x1c], 0x10
jmp 0x4cfb3b
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x5f6]
mov edx, dword [ebp - 0x2c]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 0x2c]
test dword [eax + 0x1c], 0x10
jle 0x4cfb73
lea edx, [ebp - 0xa8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.00492030
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
jmp 0x4cfc93
mov eax, dword [ebp - 0x2c]
test word [eax + 3], 1
jbe 0x4cfb8b
mov eax, dword [ebp - 0x2c]
test byte [eax + 3], 2
je 0x4cfc93
mov eax, dword [ebp - 0x2c]
mov ax, word [eax + 3]
and ax, 2
cmp ax, 2
jne 0x4cfc93
mov eax, dword [ebp - 4]
lea ecx, [eax + 0x50c]
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0049c11c
test al, al
jne 0x4cfbd2
mov dl, 1
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x44]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4a0], 0
jne 0x4d0f17
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x68], eax
mov dword [ecx + 0x6c], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0x4c8], 0
mov dword [eax + 0x4cc], 0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x4e0], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x4e4], ecx
push 0
push 7
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 4]
lea edx, [eax + 0x31ad]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0xd
mov ebx, dword [eax]
call dword [ebx + 8]
cmp eax, 0xd
je 0x4cfc62
push 0
push 0x4d0fa0
push 0x6294
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x60]
mov edx, dword [0x4919e8]
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x94]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199bc
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4c8]
mov dword [eax + 0x70], ecx
mov ecx, dword [edx + 0x4cc]
mov dword [eax + 0x74], ecx
mov eax, dword [ebp - 0x2c]
test word [eax + 3], 1
jbe 0x4cfcda
mov eax, dword [ebp - 0x22]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 7]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x31f0]
adc edx, dword [ecx + 0x31f4]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f0], eax
mov dword [ecx + 0x31f4], edx
jmp 0x4cfd05
mov eax, dword [ebp - 0x22]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 7]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x31f0], eax
mov dword [ecx + 0x31f4], edx
mov eax, dword [ebp - 0x2c]
test byte [eax + 3], 2
je 0x4cfd1e
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x40]
test al, al
je 0x4d0f17
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4cfdb4
mov eax, dword [ebp - 0x2c]
test dword [eax + 0x1c], 0x10
jle 0x4cfd69
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4cfdb4
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4cfdb4
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebp - 4]
push dword [eax + 0x31f4]
push dword [eax + 0x31f0]
mov eax, dword [ebp - 0x1e]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 0xb]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31d8]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + 0x1a]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
mov eax, dword [ebp - 0x2c]
movzx eax, word [eax + 5]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 0x22]
cdq
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 7]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x145]
lea edx, [ebp - 0xb0]
mov eax, ebx
call fcn.0040a080
mov eax, dword [ebp - 0xb0]
lea edx, [ebp - 0xac]
call fcn.00492a98
mov edx, dword [ebp - 0xac]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4c0], 0
je 0x4cfea4
lea eax, [ebp - 0xb4]
lea edx, [ebx + 0x94]
mov ecx, 8
call fcn.00404a94
mov eax, dword [ebp - 0xb4]
call fcn.00496f34
test eax, eax
jne 0x4cfeed
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199bc
push edx
push eax
lea eax, [ebp - 0xb8]
lea edx, [ebx + 0x7c]
mov ecx, 0xc
call fcn.00404a94
mov eax, dword [ebp - 0xb8]
call fcn.00496f34
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4cff15
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
lea edx, [ebp - 0xbc]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004920a8
mov eax, dword [ebp - 0xbc]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x364]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x36c]
call fcn.004a0888
test al, al
je 0x4d0007
mov al, byte [ebx + 0x9c]
sub al, 1
jb 0x4cffcb
add al, 0xd1
sub al, 2
jb 0x4cffcb
je 0x4cff69
sub al, 3
je 0x4cffa7
jmp 0x4d0007
mov eax, dword [ebp - 4]
push dword [eax + 0x48c]
push dword [eax + 0x488]
mov eax, dword [ebp - 4]
push dword [eax + 0x484]
push dword [eax + 0x480]
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0007
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4d0007
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0007
mov eax, dword [ebp - 4]
push dword [eax + 0x48c]
push dword [eax + 0x488]
mov eax, dword [ebp - 4]
push dword [eax + 0x484]
push dword [eax + 0x480]
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199bc
push edx
push eax
lea eax, [ebp - 0xc0]
lea edx, [ebx + 0x7c]
mov ecx, 0xc
call fcn.00404a94
mov eax, dword [ebp - 0xc0]
call fcn.00496f34
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
push 0
push 0x200
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
call fcn.00405a30
cmp edx, 0
jne 0x4d006e
cmp eax, 0
je 0x4d0f17
push 0
push 0x200
push 0
push 0x200
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
add eax, 0x1ff
adc edx, 0
call fcn.00405968
call fcn.00405944
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
add eax, 0x5cc
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
movzx eax, word [eax]
call fcn.00492828
test al, al
je 0x4d061c
mov eax, dword [ebp - 0x30]
mov ax, word [eax]
cmp ax, 0x8b1f
je 0x4d00e7
cmp ax, 0x9e1f
jne 0x4d012d
mov eax, dword [ebp - 0x30]
mov al, byte [eax + 3]
and al, 4
cmp al, 4
jne 0x4d012d
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov ebx, dword [eax]
call dword [ebx + 8]
push 0
push 0xa
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call fcn.00496d44
mov eax, dword [ebp - 4]
fstp qword [eax + 0x518]
wait
jmp 0x4d01c3
xor eax, eax
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x4b8], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x4bc], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax + 0x68]
sub eax, 0xa
sbb edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x488], eax
mov dword [ecx + 0x48c], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x488]
mov dword [eax + 0x480], ecx
mov ecx, dword [edx + 0x48c]
mov dword [eax + 0x484], ecx
mov eax, dword [ebp - 0x30]
cmp word [eax], 0x9d1f
jne 0x4d01ae
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
call fcn.00409580
mov edx, eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x4c]
mov eax, dword [ebp - 4]
fstp qword [eax + 0x518]
wait
jmp 0x4d01c3
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 4]
call fcn.00496d44
mov eax, dword [ebp - 4]
fstp qword [eax + 0x518]
wait
mov eax, dword [ebp - 0x30]
mov ax, word [eax]
cmp ax, 0x8b1f
je 0x4d01d5
cmp ax, 0x9e1f
jne 0x4d0253
mov eax, dword [ebp - 0x30]
mov al, byte [eax + 3]
and al, 8
cmp al, 8
jne 0x4d0253
mov eax, pe_nt_image_headers32
call fcn.00402788
mov dword [ebp - 0xc], eax
xor edx, edx
push ebp
push 0x4d024c
push dword fs:[edx]
mov dword fs:[edx], esp
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 0xff
mov ebx, dword [eax]
call dword [ebx + 8]
mov edx, dword [ebp - 0xc]
mov byte [edx + eax], 0
lea edx, [ebp - 0xc4]
mov eax, dword [ebp - 0xc]
call fcn.0040a080
mov edx, dword [ebp - 0xc4]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d02aa
mov eax, dword [ebp - 0xc]
call fcn.004027a8
ret
lea edx, [ebp - 0xc8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
call fcn.00409b04
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
add eax, 0x4c0
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.00404cdc
call fcn.00492634
xor ecx, ecx
mov cl, al
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
mov edx, 1
call fcn.00404d3c
mov eax, dword [ebp - 0x30]
mov ax, word [eax]
cmp ax, 0x8b1f
je 0x4d02c0
cmp ax, 0x9e1f
jne 0x4d0432
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
sub eax, 8
sbb edx, 0
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov ebx, dword [eax]
call dword [ebx + 8]
cmp dword [ebp - 0x14], 0x8b1f
jne 0x4d03cb
mov eax, dword [ebp - 0x30]
lea edx, [eax + 0xa]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax + 0x68]
push edx
push eax
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0xa]
add eax, 8
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
lea eax, [ebp - 0xcc]
push eax
mov eax, dword [ebp - 0x30]
mov cl, byte [eax + 0xa]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0xcc]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x68]
sub eax, 0x10
mov edx, dword [ebp - 0x30]
add eax, dword [edx + 0xa]
cdq
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4b8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x30]
mov eax, dword [eax + 0xa]
add eax, 8
add dword [ebp - 0x18], eax
mov eax, dword [ebp - 4]
lea edx, [eax + 0x480]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov ebx, dword [eax]
call dword [ebx + 8]
jmp 0x4d03d7
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov dword [eax + 0x4b8], edx
mov eax, dword [ebp - 4]
lea edx, [eax + 0x480]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov ecx, 4
mov ebx, dword [eax]
call dword [ebx + 8]
mov eax, dword [ebp - 0x30]
mov al, byte [eax + 3]
and al, 0x20
cmp al, 0x20
sete al
mov edx, dword [ebp - 4]
mov byte [edx + 0x4bc], al
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x6c]
mov eax, dword [eax + 0x68]
push edx
push eax
mov eax, dword [ebp - 0x18]
cdq
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
sub eax, 8
sbb edx, 0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x488], eax
mov dword [ecx + 0x48c], edx
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x48c]
mov eax, dword [eax + 0x488]
mov ecx, dword [ebp - 4]
cmp edx, dword [ecx + 0x484]
jne 0x4d0456
cmp eax, dword [ecx + 0x480]
jbe 0x4d0476
jmp 0x4d0458
jle 0x4d0476
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x488]
mov dword [eax + 0x480], ecx
mov ecx, dword [edx + 0x48c]
mov dword [eax + 0x484], ecx
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4d04a7
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x321c]
call dword [ebx + 0x3218]
mov eax, dword [ebp - 4]
cmp word [eax + 0x412], 0
je 0x4d05ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x60]
call fcn.00404cdc
push eax
call sub.kernel32.dll_GetFileAttributesA
mov ebx, eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x458], ebx
cmp ebx, 0x80
jne 0x4d04e7
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x458], edx
mov eax, dword [ebp - 0x30]
movzx eax, byte [eax + 2]
mov edx, dword [ebp - 4]
mov word [edx + 0x512], ax
lea eax, [ebp - 0xd0]
push eax
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov cl, byte [eax + 3]
mov eax, dword [ebp - 0x30]
xor edx, edx
mov dl, byte [eax + 2]
mov eax, dword [ebp - 4]
call fcn.0049b6d4
mov edx, dword [ebp - 0xd0]
mov eax, dword [ebp - 4]
add eax, 0x4f0
call fcn.00404880
mov eax, dword [ebp - 4]
push dword [eax + 0x48c]
push dword [eax + 0x488]
mov eax, dword [ebp - 4]
push dword [eax + 0x484]
push dword [eax + 0x480]
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov eax, dword [ebp - 4]
push dword [eax + 0x48c]
push dword [eax + 0x488]
mov eax, dword [ebp - 4]
push dword [eax + 0x484]
push dword [eax + 0x480]
call fcn.00492ee4
mov edx, dword [ebp - 4]
mov byte [edx + 0x4ec], al
lea ecx, [ebp - 0xd4]
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x46c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004923d4
mov edx, dword [ebp - 0xd4]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x3201]
sub al, 1
jb 0x4d05bf
je 0x4d05d8
dec al
jne 0x4d05ef
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4a0]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x70]
mov eax, dword [ebp - 4]
call fcn.004ccfd0
jmp 0x4d05ef
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c0]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x31dc]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199bc
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x488]
adc edx, dword [ecx + 0x48c]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x3138]
lea eax, [ebp - 0xd8]
push eax
mov cl, byte [ebx + 0x1c]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0xd8]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4d06a0
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4d06f0
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 6]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 2]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4cc]
mov eax, dword [eax + 0x4c8]
sub eax, 0x1d
sbb edx, 0
push edx
push eax
xor eax, eax
mov al, byte [ebx + 0x1c]
xor edx, edx
sub dword [esp], eax
sbb dword [esp + 4], edx
pop eax
pop edx
push edx
push eax
movzx eax, word [ebx + 0x16]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
test byte [eax + 0x355], 2
je 0x4d08eb
lea eax, [ebp - 0x1a]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x9b]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.00495478
cmp al, 1
je 0x4d07af
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4a0], 0
jne 0x4d0791
push 0x4d0fa0
push 0x621a
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x60]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x98]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
cmp byte [ebp - 0x1a], 0
je 0x4d0821
mov eax, dword [ebp - 4]
lea edx, [eax + 0x9b]
mov cl, 1
mov eax, dword [ebp - 4]
call fcn.00495574
lea eax, [ebp - 0xdc]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xb7]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404d34
mov edx, eax
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0xb7]
mov eax, dword [ebp - 4]
call fcn.00495524
jmp 0x4d0857
lea eax, [ebp - 0xe0]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0xb7]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
test byte [eax + 0xc1], 0x10
jne 0x4d0876
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c0]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
jmp 0x4d089d
lea edx, [ebp - 0xe4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.00492a98
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
push 1
lea eax, [ebp - 0xf0]
push eax
mov eax, dword [ebp - 4]
mov cx, word [eax + 0xb9]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004995b0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xf0]
mov dword [eax + 0x31e1], edx
mov edx, dword [ebp - 0xec]
mov dword [eax + 0x31e5], edx
mov dx, word [ebp - 0xe8]
mov word [eax + 0x31e9], dx
jmp 0x4d0a7e
mov eax, dword [ebp - 4]
mov dl, byte [0x4d0fa4]
cmp dl, byte [eax + 0x355]
jne 0x4d0a60
lea eax, [ebp - 0x1a]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x7d]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.00495478
test al, al
je 0x4d095f
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4a0], 0
jne 0x4d0941
push 0x4d0fa0
push 0x621a
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x60]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x98]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
cmp byte [ebp - 0x1a], 0
je 0x4d09ce
mov eax, dword [ebp - 4]
lea edx, [eax + 0x7d]
xor ecx, ecx
mov eax, dword [ebp - 4]
call fcn.00495574
lea eax, [ebp - 0xf4]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x97]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404d34
mov edx, eax
mov eax, dword [ebp - 4]
movzx ecx, word [eax + 0x97]
mov eax, dword [ebp - 4]
call fcn.00495524
jmp 0x4d0a04
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebp - 4]
mov cl, byte [eax + 0x97]
mov eax, dword [ebp - 4]
lea edx, [eax + 0x4c8]
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.00492a1c
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c0]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x78]
push 0
lea eax, [ebp - 0xf0]
push eax
mov eax, dword [ebp - 4]
mov cx, word [eax + 0x99]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004995b0
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xf0]
mov dword [eax + 0x31e1], edx
mov edx, dword [ebp - 0xec]
mov dword [eax + 0x31e5], edx
mov dx, word [ebp - 0xe8]
mov word [eax + 0x31e9], dx
jmp 0x4d0a7e
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199f0
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4d0aa6
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x321c]
call dword [ebx + 0x3218]
mov eax, dword [ebp - 4]
mov dl, byte [0x4d0fa4]
cmp dl, byte [eax + 0x355]
jne 0x4d0b9f
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x7d]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4d0b49
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x31e5]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebx + 0x12]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x31e7]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebx + 0x16]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x31e5]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebx + 0x12]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
movzx eax, word [ebx + 0x1c]
xor edx, edx
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x9b]
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x64]
cmp al, 0x20
je 0x4d0be2
cmp al, 0x21
je 0x4d0be2
mov eax, dword [ebp - 4]
test byte [eax + 0x355], 1
jne 0x4d0be2
push 0x4d0fa0
push 0x621a
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x4c0]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov esi, dword [eax]
call dword [esi + 0x98]
mov ax, word [ebx + 0x20]
test ax, ax
jbe 0x4d0bfe
push ebp
movzx edx, ax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d0]
call fcn.004ce364
pop ecx
movzx esi, word [ebx + 0x26]
mov eax, dword [ebp - 4]
mov al, byte [eax + 0x43c]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0ad0
test al, al
je 0x4d0cc4
test esi, 0x10
jle 0x4d0c60
mov eax, dword [ebp - 4]
cmp byte [eax + 0x31e0], 0
je 0x4d0cc4
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
jmp 0x4d0cc4
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x31e5]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebx + 0x14]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x31e7]
xor edx, edx
mov edx, eax
xor eax, eax
push edx
push eax
mov eax, dword [ebx + 0x18]
xor edx, edx
or eax, dword [esp]
or edx, dword [esp + 4]
add esp, 8
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
movzx eax, word [ebx + 0x1e]
xor edx, edx
mov ecx, dword [ebp - 4]
add eax, dword [ecx + 0x4c8]
adc edx, dword [ecx + 0x4cc]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
cmp dword [eax + 0x4a0], 0
jne 0x4d0d97
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x2ec9]
mov eax, dword [ebx + 0x18]
add eax, dword [ebx + 0x1c]
test eax, eax
je 0x4d0d2d
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
cmp word [ebx + 0x27], 0
jbe 0x4d0d58
mov eax, dword [ebx + 0x23]
cdq
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
push ebp
movzx edx, word [ebx + 0x27]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d0]
call fcn.004ce364
pop ecx
mov eax, dword [ebx + 0x18]
cdq
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
mov eax, dword [ebp - 4]
add eax, 0x2ef4
mov edx, dword [ebp - 4]
mov dword [edx + 0x31d4], eax
mov eax, dword [ebp - 4]
mov dword [eax + 0x31d8], 0x3a
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
jmp 0x4d0f17
mov eax, dword [ebp - 4]
lea ebx, [eax + 0x2ef4]
cmp dword [ebx + 6], 1
jge 0x4d0dc3
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
cmp word [ebx + 0x24], 0
jbe 0x4d0dee
mov eax, dword [ebx + 0x20]
cdq
push edx
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
call fcn.004199dc
push ebp
movzx edx, word [ebx + 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d0]
call fcn.004ce364
pop ecx
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.0040482c
lea edx, [ebp - 0xfc]
lea eax, [ebx + 0x26]
call fcn.0040a080
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404aec
lea ecx, [ebp - 0x100]
mov eax, dword [ebp - 4]
mov dl, byte [eax + 0x46c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004923d4
mov edx, dword [ebp - 0x100]
mov eax, dword [ebp - 4]
add eax, 0x4c0
call fcn.00404880
mov eax, dword [ebp - 4]
cmp word [eax + 0x321a], 0
je 0x4d0e74
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x4c0]
mov esi, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [esi + 0x321c]
call dword [esi + 0x3218]
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x364]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x36c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c0]
call fcn.004a0888
test al, al
je 0x4d0ec4
mov eax, dword [ebp - 4]
inc dword [eax + 0x4a0]
mov eax, dword [ebx + 0x18]
xor edx, edx
push edx
push eax
mov eax, dword [ebx + 0x14]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.004ce31c
mov edx, dword [ebp - 8]
mov edx, dword [edx]
mov eax, dword [ebp - 4]
call fcn.004cd078
mov ecx, dword [ebx + 6]
test ecx, ecx
jle 0x4d0edf
mov eax, ecx
cdq
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x4c8], eax
mov dword [ecx + 0x4cc], edx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x68]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x6c]
mov dword [eax + 0x4cc], ecx
jmp 0x4d0f17
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov ecx, dword [edx + 0x4e0]
mov dword [eax + 0x4c8], ecx
mov ecx, dword [edx + 0x4e4]
mov dword [eax + 0x4cc], ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4d0f84
lea eax, [ebp - 0x100]
mov edx, 4
call fcn.00404850
lea eax, [ebp - 0xe4]
mov edx, 0x10
call fcn.00404850
lea eax, [ebp - 0xa4]
call fcn.00404f48
lea eax, [ebp - 0xa0]
mov edx, 0xe
call fcn.00404850
lea eax, [ebp - 0x68]
call fcn.0040592c
lea eax, [ebp - 0x58]
mov edx, 0xa
call fcn.00404850
lea eax, [ebp - 0x10]
call fcn.0040482c
ret