Function at 0x401db3
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
cmp byte [esi + 0x3a], 0
jne 0x401f36
mov ebx, dword [ebp + 0xc]
movzx eax, word [ebx + 0x86]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x34]
push eax
push dword [esi]
call dword [0x48f634]
mov ecx, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x28]
mov edx, dword [esi + 0x44]
mov edi, dword [esi + 0x48]
mov dword [ebp + 0x10], ecx
mov dword [ebp + 0xc], eax
mov dword [ebp - 8], edx
mov dword [ebp + 8], edi
test ecx, ecx
je 0x43bd51
test eax, eax
je 0x43bd68
cmp dword [esi + 0x19c], 0
jne 0x43bd7f
lea eax, [ebp - 0x34]
push eax
push dword [ebx]
call dword [0x48f694]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x34]
sub eax, ecx
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x30]
sub edx, eax
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
push dword [esi]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x1c], ecx
call dword [0x48f670]
mov edi, dword [ebp - 0x1c]
mov eax, edi
imul eax, dword [ebp - 8]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x14]
cdq
idiv dword [ebp + 0x10]
mov word [ebx + 0x88], ax
mov eax, esi
imul eax, dword [ebp + 8]
cdq
idiv dword [ebp + 0xc]
mov word [ebx + 0x8a], ax
mov eax, dword [ebp - 0xc]
imul eax, dword [ebp - 8]
cdq
idiv dword [ebp + 0x10]
mov word [ebx + 0x8c], ax
mov eax, dword [ebp - 0x10]
imul eax, dword [ebp + 8]
cdq
idiv dword [ebp + 0xc]
mov word [ebx + 0x8e], ax
test cx, cx
je 0x401f2d
test ecx, 0x100
je 0x401ed3
mov eax, dword [ebp - 0xc]
mov word [ebx + 0x8c], ax
test cl, 6
jne 0x401ed3
test cl, 8
jne 0x43bd91
mov eax, dword [ebp + 0x10]
cdq
sub eax, edx
sar eax, 1
cmp edi, eax
jg 0x43bdaf
test ecx, 0x200
je 0x401f02
mov eax, dword [ebp - 0x10]
mov word [ebx + 0x8e], ax
test cl, 0x60
jne 0x401f02
test cl, cl
js 0x43bdd1
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
cmp esi, eax
jg 0x43bdef
mov edx, dword [ebp + 8]
mov eax, ecx
and eax, 2
jne 0x43be13
test cl, 4
jne 0x43be1f
mov eax, ecx
and eax, 0x20
jne 0x43be61
test cl, 0x40
jne 0x43be6d
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov edi, dword [ebp + 0xc]
mov ax, word [esi + 0x58]
cmp byte [edi + 0x90], 7
mov word [edi + 0x88], ax
mov ax, word [esi + 0x5c]
mov word [edi + 0x8a], ax
je 0x401fb7
mov ax, word [esi + 0x60]
mov word [edi + 0x8c], ax
mov ax, word [esi + 0x64]
mov word [edi + 0x8e], ax
lea eax, [ebp - 0x24]
push eax
push dword [edi]
call dword [0x48f634]
or ebx, 0xffffffff
cmp dword [esi + 0x58], ebx
je 0x401fbf
cmp dword [esi + 0x5c], ebx
je 0x401fcc
lea eax, [ebp - 0x24]
push eax
push dword [edi]
call dword [0x48f694]
cmp dword [esi + 0x60], ebx
je 0x43bd2d
cmp dword [esi + 0x64], ebx
je 0x43bd3f
cmp byte [edi + 0x90], 0
jne 0x401f2d
jmp 0x43bd3f
cmp byte [ebp + 0x10], 0
je 0x401f6e
jmp 0x401f58
mov ax, word [ebp - 0x24]
mov word [edi + 0x88], ax
jmp 0x401f82
mov ax, word [ebp - 0x20]
mov word [edi + 0x8a], ax
jmp 0x401f87
add byte [eax + 0x4e170003], ch
push cs
je 0x43bcfb
push 0x991bf996
jbe 0x43bccf
cli
or cl, byte [ebx - 0x61d8ae73]
add edi, dword [esi + 0x35]
in eax, dx
mov cl, byte [ebp - 4]
cmpsb byte [esi], byte es:[edi]
cmp byte [edx + 0x1601cb], bh
add byte [ebp + 0x6c568e17], al
lahf
jl 0x43bdb9
xor eax, 0x8b16f386
outsd dx, dword [esi]
js 0x43bda9
sahf
lock add byte [esi - 0x4cb22b], bl
mov eax, dword [ebp + 0x6e]
mov al, 0xf
jge 0x43bda9
xor eax, 0x517e8712
xor eax, dword [edx]
push edi
fimul word [ebx + 0x7abe1875]
sbb eax, 0xc6074ec
test dword [ecx + ebp*8 + 0x21], ebp
daa
sti
cld
adc byte [ebx + 0x82b6e7f], al
pushal
or al, 0x85
insb byte es:[edi], dx
jmp 0xfd3ee549
jg 0x43be9a
sub ecx, dword [eax]
sbb ch, ch
dec esi
imul esi, dword [ebx + 0x23], 0x8df57c0f
invalid
pop esi
jbe 0x43be2a
sahf
cmp dword [esi], 0x2a
pushfd
movsb byte es:[edi], byte [esi]
xor byte [ebx - 0x192a66b], ch
mov esp, ecx
cdq
mov al, byte [0xc4839ef6]
or al, 0xe3
invalid
adc edi, dword [ebx]
popfd
sbb edx, dword [esp + edi*8]
or eax, 0x7d7d5eed
and eax, 0x18a8e88
add byte [eax], al
sahf
jo 0x43be97
mov ecx, 0x92780817