Function at 0x41bad0
Capabilities:
Packed with generic packer

Disassembly:
push ebx
push ebp
xor ebx, ebx
xor eax, eax
push edi
or ebp, 0xffffffff
lea ebx, [ebx]
cmp eax, ebx
jne 0x41baec
mov eax, dword [esi + 0xac]
jmp 0x41baf1
add eax, 0x14c
mov ecx, dword [esi + 0xb0]
mov edx, dword [esi + 0xac]
imul ecx, ecx, 0x14c
add ecx, edx
cmp eax, ecx
jae 0x41bb51
lea esp, [esp]
mov edx, 0xffff0000
test dword [eax + 0x148], edx
jne 0x41bb28
add eax, 0x14c
cmp eax, ecx
jb 0x41bb10
jmp 0x41bb56
cmp byte [eax + 0x141], bl
je 0x41bae0
movzx edx, word [eax + 0x148]
mov ecx, dword [esi + 0xb8]
mov dword [esi + 0xb8], edx
mov dword [eax + 0x148], ecx
jmp 0x7ae960
mov edx, 0xffff0000
xor edi, edi
cmp edi, ebx
jne 0x41bb64
mov edi, dword [esi + 0x90]
jmp 0x41bb6a
add edi, 0x15c
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
imul eax, eax, 0x15c
add eax, ecx
cmp edi, eax
jae 0x41bb94
test dword [edi + 0x158], edx
jne 0x41bba9
add edi, 0x15c
cmp edi, eax
jb 0x41bb82
xor edi, edi
cmp edi, ebx
jne 0x41bc28
mov edi, dword [esi + 0xc8]
jmp 0x41bc2e
cmp byte [edi + 0xec], bl
je 0x41bb58
mov ecx, dword [edi + 0x110]
cmp ecx, ebx
je 0x41bbf9
mov edx, dword [0x6a9eb8]
mov edx, dword [edx + 0xc]
movzx eax, cx
cmp eax, dword [edx + 8]
jb 0x41bbd0
xor ecx, ecx
jmp 0x41bbea
imul eax, eax, 0x30c
add eax, dword [edx]
xor edx, edx
cmp dword [eax + 0x308], ecx
setne dl
sub edx, 1
and edx, eax
mov ecx, edx
cmp ecx, ebx
mov dword [edi + 0x110], ebx
je 0x41bbf9
call fcn.00404fc0
push edi
call fcn.00530850
movzx ecx, word [edi + 0x158]
mov eax, dword [esi + 0x9c]
mov dword [esi + 0x9c], ecx
mov dword [edi + 0x158], eax
add dword [esi + 0xa0], ebp
mov edx, 0xffff0000
jmp 0x41bb58
add edi, 0x94
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
imul eax, eax, 0x94
add eax, ecx
cmp edi, eax
jae 0x41bc58
test dword [edi + 0x90], edx
jne 0x41bc6c
add edi, 0x94
cmp edi, eax
jb 0x41bc46
xor edi, edi
lea ebx, [ebx]
cmp edi, ebx
jne 0x41bce0
mov edi, dword [esi + 0xe4]
jmp 0x41bce6
cmp byte [edi + 0x50], bl
je 0x41bb96
mov ecx, dword [edi + 0x7c]
cmp ecx, ebx
je 0x41bcbc
mov edx, dword [0x6a9eb8]
mov edx, dword [edx + 0xc]
movzx eax, cx
cmp eax, dword [edx + 8]
jb 0x41bc91
xor ecx, ecx
jmp 0x41bcab
imul eax, eax, 0x30c
add eax, dword [edx]
xor edx, edx
cmp dword [eax + 0x308], ecx
setne dl
sub edx, 1
and edx, eax
mov ecx, edx
cmp ecx, ebx
mov dword [edi + 0x7c], ebx
je 0x41bcb7
call fcn.00404fc0
mov edx, 0xffff0000
movzx ecx, word [edi + 0x90]
mov eax, dword [esi + 0xd4]
mov dword [esi + 0xd4], ecx
mov dword [edi + 0x90], eax
add dword [esi + 0xd8], ebp
jmp 0x41bb96
add edi, 0xd8
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0xe4]
imul eax, eax, 0xd8
add eax, ecx
cmp edi, eax
jae 0x41bd12
mov edi, edi
test dword [edi + 0xd0], edx
jne 0x41bd20
add edi, 0xd8
cmp edi, eax
jb 0x41bd00
xor eax, eax
cmp eax, ebx
jne 0x41bd94
mov eax, dword [esi + 0x100]
jmp 0x41bd97
cmp byte [edi + 0x38], bl
je 0x41bc60
mov ecx, dword [edi + 0x60]
cmp ecx, ebx
je 0x41bd70
mov edx, dword [0x6a9eb8]
mov edx, dword [edx + 0xc]
movzx eax, cx
cmp eax, dword [edx + 8]
jb 0x41bd45
xor ecx, ecx
jmp 0x41bd5f
imul eax, eax, 0x30c
add eax, dword [edx]
xor edx, edx
cmp dword [eax + 0x308], ecx
setne dl
sub edx, 1
and edx, eax
mov ecx, edx
cmp ecx, ebx
mov dword [edi + 0x60], ebx
je 0x41bd6b
call fcn.00404fc0
mov edx, 0xffff0000
movzx ecx, word [edi + 0xd0]
mov eax, dword [esi + 0xf0]
mov dword [esi + 0xf0], ecx
mov dword [edi + 0xd0], eax
add dword [esi + 0xf4], ebp
jmp 0x41bc60
add eax, 0x48
mov ecx, dword [esi + 0x104]
mov edi, dword [esi + 0x100]
lea ecx, [ecx + ecx*8]
lea ecx, [edi + ecx*8]
cmp eax, ecx
jae 0x41bdbc
lea ecx, [ecx]
test dword [eax + 0x44], edx
jne 0x41bdcc
add eax, 0x48
cmp eax, ecx
jb 0x41bdb0
xor eax, eax
mov edi, edi
cmp eax, ebx
jne 0x41bdf3
mov eax, dword [esi + 0x11c]
jmp 0x41bdf8
cmp byte [eax + 0x30], bl
je 0x41bd14
movzx edi, word [eax + 0x44]
mov ecx, dword [esi + 0x10c]
mov dword [esi + 0x10c], edi
mov dword [eax + 0x44], ecx
add dword [esi + 0x110], ebp
jmp 0x41bd14
add eax, 0xec
mov ecx, dword [esi + 0x120]
mov edi, dword [esi + 0x11c]
imul ecx, ecx, 0xec
add ecx, edi
cmp eax, ecx
jae 0x41be21
test dword [eax + 0xe8], edx
jne 0x41be25
add eax, 0xec
cmp eax, ecx
jb 0x41be10
pop edi
pop ebp
pop ebx
ret
cmp byte [eax + 0x20], bl
je 0x41bdc0
movzx edi, word [eax + 0xe8]
mov ecx, dword [esi + 0x128]
mov dword [esi + 0x128], edi
mov dword [eax + 0xe8], ecx
add dword [esi + 0x12c], ebp
jmp 0x41bdc0