Function at 0x41a17b
Capabilities:
Packed with generic packer

Disassembly:
push ebp
push esp
pop ebp
push edi
push esi
push ebx
sub esp, 0x3c
cmp dword [ebp + 0x10], 3
jne 0x41a238
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x148]
cmp eax, 0xffffffff
je 0x41a1bb
cmp dword [edx + 0x144], eax
jl 0x41a1bb
push ecx
push eax
push 0x421848
push edx
call fcn.0040e249
nop
nop
push 0x2f
pop eax
jmp 0x41a598
mov eax, dword [ebp + 8]
inc dword [eax + 0x144]
mov byte [eax + 0x8540], 1
cmp byte [eax + 0x2be], 0
je 0x41a238
cmp byte [eax + 0x3f4], 0
je 0x41a20b
mov eax, dword [eax + 0x3f0]
test eax, eax
je 0x41a201
sub esp, 0xc
push eax
call dword [0x41e00c]
mov eax, dword [ebp + 8]
add esp, 0x10
mov dword [eax + 0x3f0], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x3f4], 0
mov eax, dword [ebp + 8]
sub esp, 0xc
push dword [eax + 0x3e8]
call dword [0x41e014]
mov edx, dword [ebp + 8]
add esp, 0x10
test eax, eax
mov dword [edx + 0x3f0], eax
je 0x41a59d
mov byte [edx + 0x3f4], 1
lea eax, [ebp - 0xd]
push eax
lea eax, [ebp - 0x1d]
push eax
push 0x421869
push dword [ebp + 0xc]
call fcn.0041db80
add esp, 0x10
cmp eax, 2
je 0x41a443
mov eax, dword [ebp + 8]
sub esp, 0xc
push dword [eax + 0x3e8]
call dword [0x41e014]
add esp, 0x10
mov dword [ebp - 0x30], eax
or eax, eax
je 0x41a59d
push edi
push edi
push 0x421879
push eax
call fcn.0041dbe0
add esp, 0x10
mov ebx, dword [ebp - 0x30]
or eax, eax
je 0x41a293
lea ebx, [eax + 2]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x34], edx
cmp byte [edx], 0x2f
je 0x41a342
push esi
push esi
push 0x3f
push ebx
call fcn.0041db30
add esp, 0x10
test eax, eax
je 0x41a2b6
mov byte [eax], 0
mov eax, dword [ebp + 0xc]
cmp byte [eax], 0x3f
je 0x41a2d2
push ecx
push ecx
push 0x2f
push ebx
call fcn.0041db60
add esp, 0x10
or eax, eax
je 0x41a2d2
mov byte [eax], 0
push edx
push edx
push 0x2f
push ebx
call fcn.0041db30
sub ebx, ebx
add esp, 0x10
test eax, eax
je 0x41a2e8
lea ebx, [eax + 1]
mov edx, dword [ebp + 0xc]
cmp byte [edx], 0x2e
jne 0x41a2fc
cmp byte [edx + 1], 0x2f
jne 0x41a2fc
add edx, 2
mov dword [ebp - 0x34], edx
sub esi, esi
jmp 0x41a305
add dword [ebp - 0x34], 3
inc esi
mov eax, dword [ebp - 0x34]
cmp byte [eax], 0x2e
jne 0x41a319
cmp byte [eax + 1], 0x2e
jne 0x41a319
cmp byte [eax + 2], 0x2f
je 0x41a300
or ebx, ebx
jne 0x41a33a
jmp 0x41a396
push eax
push eax
push 0x2f
push ebx
call fcn.0041db60
add esp, 0x10
test eax, eax
je 0x41a335
mov byte [eax], 0
jmp 0x41a33a
mov byte [ebx], 0
jmp 0x41a396
dec esi
cmp esi, 0xffffffff
jne 0x41a31f
jmp 0x41a396
mov edx, dword [ebp + 0xc]
cmp byte [edx + 1], 0x2f
jne 0x41a356
add edx, 2
mov byte [ebx], 0
mov dword [ebp - 0x34], edx
jmp 0x41a396
push eax
push eax
push 0x2f
push ebx
call fcn.0041db30
add esp, 0x10
push eax
pop edi
test eax, eax
je 0x41a382
push eax
push eax
push 0x3f
push ebx
call fcn.0041db30
add esp, 0x10
test eax, eax
je 0x41a37e
cmp eax, edi
jb 0x41a393
push edi
pop eax
jmp 0x41a393
push eax
push eax
push 0x3f
push ebx
call fcn.0041db30
add esp, 0x10
or eax, eax
je 0x41a396
mov byte [eax], 0
mov eax, dword [ebp - 0x34]
call fcn.00419f66
sub edx, edx
cld
mov dword [ebp - 0x3c], eax
mov edi, dword [ebp - 0x30]
mov al, dl
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
push ecx
pop esi
sub esp, 0xc
not esi
lea edx, [esi - 1]
mov dword [ebp - 0x38], edx
mov edx, dword [ebp - 0x3c]
lea eax, [edx + esi + 1]
push eax
call dword [0x41e008]
add esp, 0x10
push eax
pop edi
test eax, eax
jne 0x41a3e8
sub esp, 0xc
push dword [ebp - 0x30]
call dword [0x41e00c]
push ebx
pop ebx
push 0x1b
pop eax
jmp 0x41a598
push eax
push dword [ebp - 0x38]
push dword [ebp - 0x30]
push edi
call fcn.0041db10
mov edx, dword [ebp - 0x34]
add esp, 0x10
mov al, byte [edx]
cmp al, 0x2f
je 0x41a418
test ebx, ebx
je 0x41a40a
cmp byte [ebx], 0
je 0x41a418
cmp al, 0x3f
je 0x41a418
mov eax, dword [ebp - 0x38]
mov byte [edi + eax], 0x2f
mov dword [ebp - 0x38], esi
mov edx, dword [ebp - 0x38]
lea eax, [edi + edx]
mov edx, dword [ebp - 0x34]
call fcn.00419f97
sub esp, 0xc
push dword [ebp - 0x30]
call dword [0x41e00c]
pop eax
push dword [ebp + 0xc]
call dword [0x41e00c]
sub edx, edx
mov dword [ebp + 0xc], edi
jmp 0x41a491
push edi
push edi
push 0x20
push dword [ebp + 0xc]
call fcn.0041db30
add esp, 0x10
mov dl, 1
or eax, eax
je 0x41a494
mov eax, dword [ebp + 0xc]
call fcn.00419f66
sub esp, 0xc
inc eax
push eax
call dword [0x41e008]
add esp, 0x10
push eax
pop edi
test eax, eax
je 0x41a59d
mov edx, dword [ebp + 0xc]
call fcn.00419f97
sub esp, 0xc
push dword [ebp + 0xc]
call dword [0x41e00c]
mov dword [ebp + 0xc], edi
mov dl, 1
add esp, 0x10
cmp dword [ebp + 0x10], 1
jne 0x41a4ad
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x8690], edx
sub eax, eax
jmp 0x41a5a2
test dl, dl
je 0x41a4bb
mov eax, dword [ebp + 8]
mov byte [eax + 0x856c], 0
mov edx, dword [ebp + 8]
cmp byte [edx + 0x3ec], 0
je 0x41a4f5
mov eax, dword [edx + 0x3e8]
or eax, eax
je 0x41a4eb
sub esp, 0xc
push eax
call dword [0x41e00c]
mov eax, dword [ebp + 8]
add esp, 0x10
mov dword [eax + 0x3e8], 0
mov edx, dword [ebp + 8]
mov byte [edx + 0x3ec], 0
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x3e8], edx
mov byte [eax + 0x3ec], 1
push eax
pop edx
mov eax, dword [eax + 0x8664]
cmp eax, 0x12e
je 0x41a53c
cmp eax, 0x12f
je 0x41a562
cmp eax, 0x12d
jne 0x41a581
mov eax, dword [edx + 0x240]
sub eax, 2
cmp eax, 1
ja 0x41a581
test byte [edx + 0x14c], 1
jmp 0x41a554
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x240]
sub eax, 2
cmp eax, 1
ja 0x41a581
test byte [edx + 0x14c], 2
jne 0x41a581
mov dword [edx + 0x240], 1
jmp 0x41a581
mov eax, dword [ebp + 8]
cmp dword [eax + 0x240], 1
je 0x41a581
test byte [eax + 0x14c], 4
jne 0x41a581
mov dword [eax + 0x240], 1
push esi
push esi
push 0xa
push dword [ebp + 8]
call fcn.00419be3
pop ebx
push dword [ebp + 8]
call fcn.00418f5c
xor eax, eax
add esp, 0x10
jmp 0x41a5a2
push 0x1b
pop eax
pushal
popal
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret