Function at 0x40bb67
Capabilities:
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x7c
mov eax, dword [0x519bc0]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push ebp
mov ebp, dword [esp + 0x88]
mov ecx, dword [ebp + 4]
mov ebx, dword [ebp]
push esi
xor eax, eax
push edi
cmp ecx, 0xa
jne 0x409e1a
mov dword [ebp + 0xfa14], eax
mov dword [ebp + 0xfa18], eax
mov dword [ebp + 0xfa1c], eax
mov dword [ebp + 0xfa20], eax
mov dword [ebp + 0xfa24], eax
mov dword [ebp + 0xfa28], eax
mov dword [ebp + 0xfa2c], eax
mov dword [ebp + 0xfa30], eax
mov dword [ebp + 0xfa34], eax
mov dword [ebp + 0xfa38], eax
mov dword [ebp + 0xfa3c], eax
mov dword [ebp + 0xfa40], eax
mov dword [ebp + 0xfa44], eax
mov dword [ebp + 0xfa48], eax
mov dword [ebp + 0xfa4c], eax
mov dword [ebp + 0xfa50], eax
mov dword [ebp + 0xfa54], eax
mov dword [ebp + 0xfa58], eax
mov dword [ebp + 0xfa5c], eax
mov dword [ebp + 0xfa60], eax
mov dword [ebp + 0xfa64], eax
mov dword [ebp + 0xfa68], eax
mov dword [ebp + 0xfa6c], eax
mov dword [ebp + 0xfa70], eax
mov edx, dword [ebp + 0xfa14]
mov dword [esp + 0x10], edx
mov edx, dword [ebp + 0xfa18]
mov dword [esp + 0x20], edx
mov edx, dword [ebp + 0xfa1c]
mov dword [esp + 0x30], edx
mov edx, dword [ebp + 0xfa20]
mov dword [esp + 0x64], edx
mov edx, dword [ebp + 0xfa24]
mov dword [esp + 0x60], edx
mov edx, dword [ebp + 0xfa28]
mov dword [esp + 0x40], edx
mov edx, dword [ebp + 0xfa2c]
mov dword [esp + 0x58], edx
mov edx, dword [ebp + 0xfa30]
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 0xfa34]
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0xfa38]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 0xfa3c]
mov dword [esp + 0x4c], edx
mov edx, dword [ebp + 0xfa40]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0xfa44]
mov dword [esp + 0x24], edx
mov edx, dword [ebp + 0xfa48]
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 0xfa4c]
mov dword [esp + 0x34], edx
mov edx, dword [ebp + 0xfa50]
mov dword [esp + 0x78], edx
mov edx, dword [ebp + 0xfa54]
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0xfa58]
mov dword [esp + 0x1c], edx
mov edx, dword [ebp + 0xfa5c]
mov dword [esp + 0x68], edx
mov edx, dword [ebp + 0xfa60]
mov dword [esp + 0x6c], edx
mov edx, dword [ebp + 0xfa64]
mov dword [esp + 0x54], edx
mov edx, dword [ebp + 0xfa68]
mov dword [esp + 0x44], edx
mov edx, dword [ebp + 0xfa6c]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0xfa70]
add ecx, 0xfffffff6
mov dword [esp + 0x38], edx
cmp ecx, 0x28
ja case.default.0x409f1e
mov esi, 1
lea edi, [esi + 0x1b]
jmp dword [ecx*4 + 0x40bd78]
cmp dword [ebp + 0x20], 8
mov dword [ebp + 4], 0xa
jge 0x409f76
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov edx, dword [eax]
movzx edx, byte [edx]
mov ecx, dword [ebp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x1c], ecx
mov ecx, 8
add dword [ebp + 0x20], ecx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x409f71
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x409f32
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x42
je case.0x409f1e.11
mov eax, 0xfffffffb
jmp case.default.0x409f1e
cmp dword [ebp + 0x20], 8
mov dword [ebp + 4], 0xb
jge 0x409ff4
jmp 0x409fb0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov edx, dword [eax]
movzx edx, byte [edx]
mov ecx, dword [ebp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x1c], ecx
mov ecx, 8
add dword [ebp + 0x20], ecx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x409fef
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x409fb0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x5a
jne 0x409f90
cmp dword [ebp + 0x20], 8
mov dword [ebp + 4], 0xc
jge 0x40a064
jmp 0x40a020
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov edx, dword [eax]
movzx edx, byte [edx]
mov ecx, dword [ebp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x1c], ecx
mov ecx, 8
add dword [ebp + 0x20], ecx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a05f
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a020
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x68
jne 0x409f90
cmp dword [ebp + 0x20], 8
mov dword [ebp + 4], 0xd
jge 0x40a0d4
nop
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov edx, dword [eax]
movzx edx, byte [edx]
mov ecx, dword [ebp + 0x1c]
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x1c], ecx
mov ecx, 8
add dword [ebp + 0x20], ecx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a0cf
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a090
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp eax, 0x31
mov dword [ebp + 0x24], eax
jl 0x409f90
cmp eax, 0x39
jg 0x409f90
add eax, 0xffffffd0
mov dword [ebp + 0x24], eax
imul eax, eax, 0x186a0
mov dword [ebp + 0xc4c], eax
mov ecx, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x24]
add eax, eax
push esi
add eax, eax
push eax
push ecx
call edx
mov dword [ebp + 0xc48], eax
test eax, eax
jne case.0x409f1e.14
mov eax, 0xfffffffd
jmp case.default.0x409f1e
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xe
jge 0x40a18f
jmp 0x40a150
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a18a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a150
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x17
je case.0x409f1e.42
cmp al, 0x31
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0xf
jge 0x40a20f
jmp 0x40a1d0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a20a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a1d0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x41
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x10
jge 0x40a27f
mov edi, edi
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a27a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a240
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x59
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x11
jge 0x40a2ef
mov edi, edi
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a2ea
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a2b0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x26
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x12
jge 0x40a35f
mov edi, edi
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a35a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a320
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x53
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x13
jge 0x40a3cf
mov edi, edi
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a3ca
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a390
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x59
jne 0x40b79f
add dword [ebp + 0x28], esi
mov dword [ebp + 0xc58], 0
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x14
jge 0x40a44f
jmp 0x40a410
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a44a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a410
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x15
jge 0x40a4cf
lea ebx, [ebx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a4ca
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a490
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x16
jge 0x40a54f
lea ebx, [ebx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a54a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a510
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x17
jge 0x40a5cf
lea ebx, [ebx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a5ca
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a590
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc58]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc58], ecx
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x18
mov edx, 8
jge 0x40a64f
lea ebx, [ebx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov ecx, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl ecx, 8
or ecx, ebx
mov dword [ebp + 0x1c], ecx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a64a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40a610
mov eax, dword [ebp + 0x20]
mov ebx, dword [ebp + 0x1c]
lea ecx, [eax - 1]
shr ebx, cl
lea eax, [eax - 1]
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x30], 0
and ebx, esi
setne al
mov byte [ebp + 0x10], al
jmp 0x40a676
mov edx, 8
cmp dword [ebp + 0x20], edx
mov dword [ebp + 4], 0x19
jge 0x40a6c1
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov ecx, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl ecx, 8
or ecx, ebx
mov dword [ebp + 0x1c], ecx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a6bc
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], edx
jl 0x40a682
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
mov edx, dword [ebp + 0x30]
and eax, 0xff
movzx eax, al
shl edx, 8
or edx, eax
mov dword [ebp + 0x30], edx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x1a
jge 0x40a73f
jmp 0x40a700
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a73a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a700
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0x30]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0x30], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x1b
jge 0x40a7bf
jmp 0x40a780
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a7ba
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40a780
mov eax, dword [ebp + 0x20]
mov edx, dword [ebp + 0x1c]
lea ecx, [eax - 8]
shr edx, cl
add eax, 0xfffffff8
mov dword [ebp + 0x20], eax
mov eax, dword [ebp + 0x30]
and edx, 0xff
movzx ecx, dl
shl eax, 8
or eax, ecx
mov dword [ebp + 0x30], eax
jl 0x40b79f
mov edx, dword [ebp + 0x24]
imul edx, edx, 0x186a0
add edx, 0xa
cmp eax, edx
jg 0x40b79f
mov dword [esp + 0x10], 0
jmp 0x40a886
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], edi
jge 0x40a85f
mov ecx, 8
jmp 0x40a820
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edx, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edx, 8
or edx, ebx
mov dword [ebp + 0x1c], edx
add dword [eax], esi
mov eax, dword [ebp]
dec dword [eax + 4]
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a85a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40a820
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
cmp al, 1
mov eax, dword [esp + 0x10]
sete cl
mov byte [eax + ebp + 0xd6c], cl
add eax, esi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0x10
jl case.0x409f1e.28
push 0x100
lea eax, [ebp + 0xc6c]
push 0
push eax
call fcn.004e7df0
add esp, 0xc
xor eax, eax
mov dword [esp + 0x10], eax
jmp 0x40a950
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x1d
jge 0x40a90f
or edx, 0xffffffff
lea ecx, [edx + 9]
jmp 0x40a8d0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a90a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40a8d0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
cmp al, 1
jne 0x40a939
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
shl edx, 4
add edx, ebp
mov byte [edx + eax + 0xc6c], 1
add dword [esp + 0x20], esi
cmp dword [esp + 0x20], 0x10
jl case.0x409f1e.29
add dword [esp + 0x10], esi
mov eax, dword [esp + 0x10]
cmp eax, 0x10
jge 0x40a969
cmp byte [eax + ebp + 0xd6c], 0
je 0x40a948
mov dword [esp + 0x20], 0
jmp 0x40a93d
mov eax, ebp
call fcn.00409320
mov eax, dword [ebp + 0xc68]
test eax, eax
je 0x40b79f
add eax, 2
mov dword [esp + 0x64], eax
cmp dword [ebp + 0x20], 3
mov dword [ebp + 4], 0x1e
jge 0x40a9e0
or edx, 0xffffffff
lea ecx, [edx + 9]
jmp 0x40a9a0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40a9da
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], 3
jl 0x40a9a0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 3]
shr eax, cl
add edx, 0xfffffffd
mov dword [ebp + 0x20], edx
and eax, 7
cmp eax, 2
mov dword [esp + 0x60], eax
jl 0x40b79f
cmp eax, 6
jg 0x40b79f
cmp dword [ebp + 0x20], 0xf
mov dword [ebp + 4], 0x1f
jge 0x40aa60
or edx, 0xffffffff
lea ecx, [edx + 9]
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40aa5a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], 0xf
jl 0x40aa20
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 0xf]
shr eax, cl
add edx, 0xfffffff1
mov dword [ebp + 0x20], edx
and eax, 0x7fff
cmp eax, esi
mov ebx, eax
mov dword [esp + 0x40], ebx
jl 0x40b79f
mov dword [esp + 0x10], 0
jmp 0x40ab0d
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x20
jge 0x40aadf
or edx, 0xffffffff
lea ecx, [edx + 9]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40aada
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40aaa0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
test al, al
jne 0x40ab20
mov eax, dword [esp + 0x10]
mov cl, byte [esp + 0x20]
mov ebx, dword [esp + 0x40]
mov byte [eax + ebp + 0x650e], cl
add eax, esi
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebx
jge 0x40ab3e
mov dword [esp + 0x20], 0
jmp case.0x409f1e.32
mov eax, dword [esp + 0x20]
add eax, esi
cmp eax, dword [esp + 0x60]
mov dword [esp + 0x20], eax
jl case.0x409f1e.32
mov eax, 0xfffffffc
jmp case.default.0x409f1e
mov edx, dword [esp + 0x60]
xor al, al
test edx, edx
jle 0x40ab60
xor ecx, ecx
lea ebx, [ebx]
mov byte [esp + ecx + 0x80], al
inc al
movzx ecx, al
cmp ecx, edx
jl 0x40ab50
xor edi, edi
mov dword [esp + 0x10], edi
test ebx, ebx
jle 0x40abb7
lea ebx, [ebx]
mov al, byte [edi + ebp + 0x650e]
movzx ecx, al
mov dl, byte [esp + ecx + 0x80]
lea ecx, [esp + ecx + 0x80]
test al, al
jbe 0x40ab9d
lea esp, [esp]
mov bl, byte [ecx - 1]
mov byte [ecx], bl
dec al
sub ecx, esi
test al, al
ja 0x40ab90
mov byte [edi + ebp + 0x1ebc], dl
add edi, esi
cmp edi, dword [esp + 0x40]
mov byte [esp + 0x80], dl
jl 0x40ab70
mov dword [esp + 0x10], edi
mov dword [esp + 0x30], 0
jmp 0x40acfb
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x23
jge 0x40ac1f
or edx, 0xffffffff
lea ecx, [edx + 9]
jmp 0x40abe0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40ac1a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40abe0
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
test al, al
jne 0x40ac3a
add dword [esp + 0x34], esi
jmp 0x40ac3e
sub dword [esp + 0x34], esi
mov eax, dword [esp + 0x34]
cmp eax, esi
jl 0x40b79f
cmp eax, 0x14
jg 0x40b79f
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x22
jge 0x40acaf
or edx, 0xffffffff
lea ecx, [edx + 9]
jmp 0x40ac70
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40acaa
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40ac70
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 1]
shr eax, cl
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
test al, al
jne case.0x409f1e.35
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x10]
imul edx, edx, 0x102
mov cl, byte [esp + 0x34]
add edx, ebp
mov byte [edx + eax + 0xab60], cl
add eax, esi
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x10]
cmp edx, dword [esp + 0x64]
jl 0x40ac3e
add dword [esp + 0x30], esi
mov eax, dword [esp + 0x60]
cmp dword [esp + 0x30], eax
jge 0x40ad85
cmp dword [ebp + 0x20], 5
mov dword [ebp + 4], 0x21
jge 0x40ad60
or edx, 0xffffffff
lea ecx, [edx + 9]
lea esp, [esp]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40ad5a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], 5
jl 0x40ad20
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 5]
shr eax, cl
mov dword [esp + 0x10], 0
and eax, 0x1f
add edx, 0xfffffffb
mov dword [ebp + 0x20], edx
mov dword [esp + 0x34], eax
jmp 0x40ace9
mov dword [esp + 0x30], 0
test eax, eax
jle 0x40ae19
lea eax, [ebp + 0xf9fc]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x60]
lea esi, [ebp + 0xc99c]
lea ebx, [ebp + 0xab60]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x30], eax
xor edx, edx
xor ecx, ecx
cmp dword [esp + 0x64], edx
mov edi, 0x20
jle 0x40addd
movzx eax, byte [ebx + edx]
cmp eax, ecx
jle 0x40add0
mov ecx, eax
cmp eax, edi
jge 0x40add6
mov edi, eax
inc edx
cmp edx, dword [esp + 0x64]
jl 0x40adc6
mov edx, dword [esp + 0x64]
push edx
push ecx
push edi
push ebx
lea eax, [esi + 0x1830]
push eax
push esi
lea ecx, [esi - 0x1830]
push ecx
call fcn.00409360
mov eax, dword [esp + 0x58]
mov dword [eax], edi
add eax, 4
add ebx, 0x102
add esi, 0x408
sub dword [esp + 0x4c], 1
mov dword [esp + 0x58], eax
jne 0x40adb7
mov eax, dword [ebp + 0xc68]
inc eax
mov dword [esp + 0x58], eax
mov eax, dword [ebp + 0x24]
imul eax, eax, 0x186a0
mov dword [esp + 0x4c], eax
xor eax, eax
lea edi, [ebp + 0x3c]
mov ecx, 0x100
mov edx, 0xf
rep stosd dword es:[edi], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x10], 0x100
mov eax, 0xfff
mov dword [esp + 0x2c], edx
lea esi, [ebp + 0x1eb8]
mov ecx, 0xf
shl dl, 4
lea esp, [esp]
mov bl, cl
add bl, dl
mov byte [eax + ebp + 0xe7c], bl
dec eax
sub ecx, 1
jns 0x40ae70
lea edx, [eax + 1]
mov dword [esi], edx
mov edx, dword [esp + 0x2c]
dec edx
sub esi, 4
mov dword [esp + 0x2c], edx
test edx, edx
jge 0x40ae61
cmp dword [esp + 0x40], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
jle 0x40b79f
movzx eax, byte [ebp + 0x1ebc]
mov ecx, dword [ebp + eax*4 + 0xf9fc]
mov dword [esp + 0x6c], eax
imul eax, eax, 0x408
add eax, ebp
lea edx, [eax + 0xb16c]
mov dword [esp + 0x44], edx
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov dword [esp + 0x54], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov dword [esp + 0x48], 0x31
mov dword [esp + 0x14], ecx
mov esi, 1
mov eax, dword [ebp + 0x20]
cmp eax, dword [esp + 0x14]
mov dword [ebp + 4], 0x24
jge 0x40af56
or edx, 0xffffffff
lea ecx, [edx + 9]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40af4d
add dword [eax + 0xc], esi
mov eax, dword [esp + 0x14]
cmp dword [ebp + 0x20], eax
jl 0x40af13
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
sub edx, edi
mov ecx, edx
shr eax, cl
mov ebx, esi
mov ecx, edi
shl ebx, cl
mov dword [ebp + 0x20], edx
sub ebx, esi
and eax, ebx
mov dword [esp + 0x1c], eax
jmp 0x40aff7
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x25
jge 0x40afcf
mov edx, 8
or ecx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40afca
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40af90
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov edi, dword [esp + 0x14]
lea ecx, [edx - 1]
shr eax, cl
mov ecx, dword [esp + 0x1c]
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
lea edx, [ecx + ecx]
or edx, eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x1c], edx
mov eax, edx
cmp edi, 0x14
jg 0x40b79f
mov ecx, dword [esp + 0x44]
cmp eax, dword [ecx + edi*4]
jle 0x40b014
add edi, esi
mov dword [esp + 0x14], edi
jmp case.0x409f1e.37
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + edi*4]
js 0x40b028
cmp eax, 0x102
jl 0x40b0e3
mov eax, 0xfffffffc
jmp case.default.0x409f1e
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x29
jge 0x40b08f
mov edx, 8
or ecx, 0xffffffff
jmp 0x40b050
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], edx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], ecx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40b08a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40b050
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov edi, dword [esp + 0x14]
lea ecx, [edx - 1]
shr eax, cl
mov ecx, dword [esp + 0x1c]
dec edx
mov dword [ebp + 0x20], edx
and eax, esi
lea edx, [ecx + ecx]
mov dword [esp + 0x68], eax
or eax, edx
cmp edi, 0x14
mov dword [esp + 0x1c], eax
jg 0x40b79f
mov ecx, dword [esp + 0x44]
cmp eax, dword [ecx + edi*4]
jg 0x40b675
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + edi*4]
js 0x40b79f
cmp eax, 0x102
jge 0x40b79f
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x50], edx
mov ecx, dword [esp + 0x50]
cmp ecx, dword [esp + 0x58]
je 0x40b680
test ecx, ecx
je 0x40b108
cmp ecx, esi
jne 0x40b359
mov dword [esp + 0x24], 0xffffffff
mov dword [esp + 0x5c], esi
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x40b126
mov eax, dword [esp + 0x5c]
add dword [esp + 0x24], eax
jmp 0x40b139
cmp eax, esi
jne 0x40b139
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x5c]
lea eax, [ecx + edx*2]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x5c]
lea edx, [ecx + ecx]
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x5c], edx
test ecx, ecx
jne 0x40b1a1
mov eax, dword [esp + 0x2c]
add eax, esi
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
jge 0x40b79f
movzx eax, byte [eax + ebp + 0x1ebc]
mov edx, dword [ebp + eax*4 + 0xf9fc]
mov dword [esp + 0x6c], eax
imul eax, eax, 0x408
add eax, ebp
mov dword [esp + 0x54], edx
lea edx, [eax + 0xb16c]
mov dword [esp + 0x44], edx
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov ecx, 0x32
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
sub ecx, esi
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], eax
mov ecx, dword [ebp + 0x20]
cmp ecx, dword [esp + 0x14]
mov dword [ebp + 4], 0x26
jge 0x40b213
or edx, 0xffffffff
lea ecx, [edx + 9]
jmp 0x40b1d0
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40b20a
add dword [eax + 0xc], esi
mov eax, dword [esp + 0x14]
cmp dword [ebp + 0x20], eax
jl 0x40b1d0
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
sub edx, edi
mov ecx, edx
shr eax, cl
mov ebx, esi
mov ecx, edi
shl ebx, cl
mov dword [ebp + 0x20], edx
sub ebx, esi
and eax, ebx
cmp edi, 0x14
mov dword [esp + 0x1c], eax
jg 0x40b79f
mov ecx, dword [esp + 0x44]
cmp eax, dword [ecx + edi*4]
jle 0x40b2c8
add edi, esi
mov dword [esp + 0x14], edi
cmp dword [ebp + 0x20], esi
mov dword [ebp + 4], 0x27
jge 0x40b2a1
or edx, 0xffffffff
lea ecx, [edx + 9]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40b29c
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], esi
jl 0x40b262
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
mov edi, dword [esp + 0x14]
lea ecx, [edx - 1]
shr eax, cl
dec edx
mov dword [ebp + 0x20], edx
mov edx, dword [esp + 0x1c]
and eax, esi
lea ecx, [edx + edx]
mov dword [esp + 0x68], eax
or eax, ecx
jmp 0x40b230
mov edx, dword [esp + 0x3c]
sub eax, dword [edx + edi*4]
js 0x40b79f
cmp eax, 0x102
jge 0x40b79f
mov ecx, dword [esp + 0x38]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x50], eax
test eax, eax
je 0x40b114
cmp eax, esi
je 0x40b114
mov edx, dword [ebp + 0x1e7c]
movzx eax, byte [edx + ebp + 0xe7c]
mov ecx, dword [esp + 0x24]
movzx eax, byte [eax + ebp + 0xd7c]
add ecx, esi
add dword [ebp + eax*4 + 0x3c], ecx
mov dword [esp + 0x24], ecx
test ecx, ecx
jle 0x40b0ee
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
cmp ecx, edi
jge 0x40b79f
mov ebx, dword [ebp + 0xc48]
sub edx, esi
mov dword [ebx + ecx*4], eax
add ecx, esi
mov dword [esp + 0x28], ecx
mov dword [esp + 0x24], edx
test edx, edx
jg 0x40b333
jmp 0x40b0ee
mov edx, dword [esp + 0x4c]
cmp dword [esp + 0x28], edx
jge 0x40b79f
dec ecx
cmp ecx, 0x10
jae 0x40b43e
mov esi, dword [ebp + 0x1e7c]
lea edx, [esi + ebp]
mov bl, byte [ecx + edx + 0xe7c]
mov dword [esp + 0x80], edx
mov byte [esp + 0x1b], bl
cmp ecx, 3
jbe 0x40b41c
lea eax, [esi + ecx]
lea edx, [ebp + 0xe7b]
mov esi, ebp
sub esi, edx
add esi, 0xe7c
mov dword [esp + 0x70], esi
mov esi, ebp
sub esi, edx
lea edi, [esi + 0xe7a]
mov esi, ebp
sub esi, edx
add esi, 0xe78
mov dword [esp + 0x74], esi
mov esi, ebp
sub esi, edx
add esi, 0xe79
mov dword [esp + 0x7c], esi
lea esi, [ecx - 4]
shr esi, 2
add eax, edx
inc esi
jmp 0x40b3e0
movzx edx, byte [eax]
mov ebx, dword [esp + 0x70]
mov byte [ebx + eax], dl
movzx edx, byte [edi + eax]
mov byte [eax], dl
mov edx, dword [esp + 0x7c]
movzx ebx, byte [edx + eax]
mov byte [edi + eax], bl
mov ebx, dword [esp + 0x74]
movzx ebx, byte [ebx + eax]
mov byte [edx + eax], bl
sub ecx, 4
sub eax, 4
sub esi, 1
jne 0x40b3e0
mov edx, dword [esp + 0x80]
mov bl, byte [esp + 0x1b]
test ecx, ecx
jbe 0x40b433
sub ecx, 1
mov al, byte [ecx + edx + 0xe7c]
mov byte [ecx + edx + 0xe7d], al
jne 0x40b420
mov byte [edx + 0xe7c], bl
jmp 0x40b55b
mov edx, ecx
shr edx, 4
mov edi, dword [ebp + edx*4 + 0x1e7c]
lea esi, [ebp + edx*4 + 0x1e7c]
and ecx, 0xf
add ecx, edi
cmp ecx, edi
mov bl, byte [ecx + ebp + 0xe7c]
mov byte [esp + 0x1b], bl
jle 0x40b483
jmp 0x40b470
mov al, byte [ecx + ebp + 0xe7b]
mov byte [ecx + ebp + 0xe7c], al
dec ecx
cmp ecx, dword [esi]
jg 0x40b470
inc dword [esi]
test edx, edx
jle 0x40b4ad
mov eax, esi
jmp 0x40b490
dec dword [eax]
mov ecx, dword [eax - 4]
mov esi, dword [eax]
mov cl, byte [ecx + ebp + 0xe8b]
dec edx
sub eax, 4
mov byte [esi + ebp + 0xe7c], cl
test edx, edx
jg 0x40b490
dec dword [ebp + 0x1e7c]
mov eax, dword [ebp + 0x1e7c]
mov byte [eax + ebp + 0xe7c], bl
cmp dword [ebp + 0x1e7c], 0
jne 0x40b55b
mov ecx, 0xfff
mov edi, 0xf
lea esi, [ebp + 0x1eb8]
lea ecx, [ecx]
mov eax, 0xf
jmp 0x40b4f0
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe7c]
mov byte [ecx + ebp + 0xe7c], dl
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe7b]
mov byte [ecx + ebp + 0xe7b], dl
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe7a]
mov byte [ecx + ebp + 0xe7a], dl
mov ebx, dword [esi]
lea edx, [eax + ebp]
movzx edx, byte [edx + ebx + 0xe79]
mov byte [ecx + ebp + 0xe79], dl
sub eax, 4
sub ecx, 4
test eax, eax
jge 0x40b4f0
lea eax, [ecx + 1]
mov dword [esi], eax
dec edi
sub esi, 4
test edi, edi
jge 0x40b4e0
mov bl, byte [esp + 0x1b]
movzx ecx, bl
movzx edx, byte [ecx + ebp + 0xd7c]
inc dword [ebp + edx*4 + 0x3c]
lea eax, [ecx + ebp + 0xd7c]
lea ecx, [ebp + edx*4 + 0x3c]
movzx ecx, byte [eax]
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0xc48]
mov dword [edx + eax*4], ecx
mov ecx, dword [esp + 0x48]
inc eax
mov dword [esp + 0x28], eax
test ecx, ecx
jne 0x40b5e6
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, dword [esp + 0x40]
mov dword [esp + 0x2c], eax
jge 0x40b79f
movzx eax, byte [eax + ebp + 0x1ebc]
mov edx, dword [ebp + eax*4 + 0xf9fc]
mov dword [esp + 0x6c], eax
imul eax, eax, 0x408
add eax, ebp
mov dword [esp + 0x54], edx
lea edx, [eax + 0xb16c]
mov dword [esp + 0x44], edx
lea edx, [eax + 0xe1cc]
add eax, 0xc99c
mov ecx, 0x32
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
dec ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x14], eax
mov esi, 1
mov ecx, dword [ebp + 0x20]
cmp ecx, dword [esp + 0x14]
mov dword [ebp + 4], 0x28
jge 0x40b653
or edx, 0xffffffff
lea ecx, [edx + 9]
mov edi, edi
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40b64a
add dword [eax + 0xc], esi
mov eax, dword [esp + 0x14]
cmp dword [ebp + 0x20], eax
jl 0x40b610
mov edx, dword [ebp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, dword [ebp + 0x1c]
sub edx, edi
mov ecx, edx
shr eax, cl
mov ebx, esi
mov ecx, edi
shl ebx, cl
mov dword [ebp + 0x20], edx
sub ebx, esi
and eax, ebx
jmp 0x40b0b1
add edi, esi
mov dword [esp + 0x14], edi
jmp case.0x409f1e.41
mov eax, dword [ebp + 0x30]
test eax, eax
jl 0x40b79f
cmp eax, dword [esp + 0x28]
jge 0x40b79f
lea eax, [ebp + 0x444]
lea ebx, [ebp + 0x440]
lea esi, [ebp + 0x3c]
mov ecx, 0x100
mov edi, eax
mov dword [ebx], 0
rep movsd dword es:[edi], dword [esi]
mov edx, 0x40
mov ecx, dword [eax - 4]
add dword [eax], ecx
mov ecx, dword [eax]
add dword [eax + 4], ecx
mov ecx, dword [eax + 4]
add dword [eax + 8], ecx
mov ecx, dword [eax + 8]
add dword [eax + 0xc], ecx
add eax, 0x10
sub edx, 1
jne 0x40b6b8
mov esi, dword [esp + 0x28]
xor edi, edi
mov eax, ebx
mov edi, edi
mov ecx, dword [eax]
cmp ecx, edi
jl 0x40b79b
cmp ecx, esi
jg 0x40b79b
inc edx
add eax, 4
cmp edx, 0x100
jle 0x40b6e0
or ebx, 0xffffffff
xor edx, edx
cmp esi, edi
mov dword [ebp + 0xc], edi
mov byte [ebp + 8], 0
mov dword [ebp + 0xc60], ebx
mov dword [ebp + 4], 2
mov dword [esp + 0x10], edx
jle 0x40b74f
nop
mov ecx, dword [ebp + 0xc48]
movzx eax, byte [ecx + edx*4]
mov edi, dword [ebp + eax*4 + 0x440]
lea eax, [ebp + eax*4 + 0x440]
lea ecx, [ecx + edi*4]
mov edi, edx
shl edi, 8
or dword [ecx], edi
inc dword [eax]
inc edx
cmp edx, esi
jl 0x40b720
mov dword [esp + 0x10], edx
xor edi, edi
mov ecx, dword [ebp + 0x30]
mov eax, dword [ebp + 0xc48]
mov edx, dword [eax + ecx*4]
shr edx, 8
cmp byte [ebp + 0x10], 0
mov dword [ebp + 0x34], edx
mov dword [ebp + 0x43c], edi
mov ecx, edx
je 0x40b8e7
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], edi
cmp ecx, dword [ebp + 0xc4c]
jb 0x40b7a6
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.004e6b3a
add esp, 0x7c
ret 4
mov dword [esp + 0x10], edx
mov eax, 0xfffffffc
jmp case.default.0x409f1e
mov eax, dword [eax + ecx*4]
movzx ecx, al
mov dword [ebp + 0x38], ecx
mov ecx, 1
mov dword [ebp + 0x34], eax
shr dword [ebp + 0x34], 8
mov dword [ebp + 0x43c], ecx
mov edx, dword [0x516040]
mov dword [ebp + 0x14], edx
add dword [ebp + 0x14], ebx
mov eax, dword [ebp + 0x14]
xor edx, edx
cmp eax, ecx
sete dl
mov dword [ebp + 0x18], ecx
xor dword [ebp + 0x38], edx
xor eax, eax
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x20]
mov dword [ebp + 0xfa14], ecx
mov ecx, dword [esp + 0x30]
mov dword [ebp + 0xfa18], edx
mov edx, dword [esp + 0x64]
mov dword [ebp + 0xfa1c], ecx
mov ecx, dword [esp + 0x60]
mov dword [ebp + 0xfa20], edx
mov edx, dword [esp + 0x40]
mov dword [ebp + 0xfa24], ecx
mov ecx, dword [esp + 0x58]
mov dword [ebp + 0xfa28], edx
mov edx, dword [esp + 0x2c]
mov dword [ebp + 0xfa2c], ecx
mov ecx, dword [esp + 0x48]
mov dword [ebp + 0xfa30], edx
mov edx, dword [esp + 0x50]
mov dword [ebp + 0xfa34], ecx
mov ecx, dword [esp + 0x4c]
mov dword [ebp + 0xfa38], edx
mov edx, dword [esp + 0x28]
mov dword [ebp + 0xfa3c], ecx
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0xfa40], edx
mov edx, dword [esp + 0x5c]
mov dword [ebp + 0xfa44], ecx
mov ecx, dword [esp + 0x34]
mov dword [ebp + 0xfa48], edx
mov edx, dword [esp + 0x78]
mov dword [ebp + 0xfa4c], ecx
mov ecx, dword [esp + 0x14]
mov dword [ebp + 0xfa50], edx
mov edx, dword [esp + 0x1c]
mov dword [ebp + 0xfa54], ecx
mov ecx, dword [esp + 0x68]
mov dword [ebp + 0xfa58], edx
mov edx, dword [esp + 0x6c]
mov dword [ebp + 0xfa5c], ecx
mov ecx, dword [esp + 0x54]
mov dword [ebp + 0xfa60], edx
mov edx, dword [esp + 0x44]
mov dword [ebp + 0xfa64], ecx
mov ecx, dword [esp + 0x3c]
pop edi
mov dword [ebp + 0xfa68], edx
mov edx, dword [esp + 0x34]
mov dword [ebp + 0xfa6c], ecx
mov ecx, dword [esp + 0x84]
pop esi
mov dword [ebp + 0xfa70], edx
pop ebp
pop ebx
xor ecx, esp
call fcn.004e6b3a
add esp, 0x7c
ret 4
cmp ecx, dword [ebp + 0xc4c]
jae 0x40b781
mov eax, dword [eax + ecx*4]
movzx ecx, al
mov dword [ebp + 0x34], eax
shr dword [ebp + 0x34], 8
mov dword [ebp + 0x38], ecx
mov dword [ebp + 0x43c], 1
jmp 0x40b7dd
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2a
jge 0x40b96f
or edx, 0xffffffff
jmp 0x40b930
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40b96a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40b930
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x72
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2b
jge 0x40b9e0
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40b9db
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40b9a1
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x45
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2c
jge 0x40ba51
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40ba4c
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40ba12
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x38
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2d
jge 0x40bac2
or edx, 0xffffffff
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40babd
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40ba83
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x50
jne 0x40b79f
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2e
jge 0x40bb3f
or edx, 0xffffffff
jmp 0x40bb00
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40bb3a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40bb00
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
cmp al, 0x90
jne 0x40b79f
mov dword [ebp + 0xc5c], 0
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x2f
jge 0x40bbbf
or edx, 0xffffffff
jmp 0x40bb80
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40bbba
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40bb80
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
mov edx, dword [ebp + 0xc5c]
and eax, 0xff
movzx eax, al
shl edx, 8
or edx, eax
mov dword [ebp + 0xc5c], edx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x30
jge 0x40bc3f
or edx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40bc3a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40bc00
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc5c]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc5c], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x31
jge 0x40bcbf
or edx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40bcba
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40bc80
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc5c]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc5c], ecx
mov ecx, 8
cmp dword [ebp + 0x20], ecx
mov dword [ebp + 4], 0x32
jge 0x40bd3f
or edx, 0xffffffff
lea ecx, [ecx]
mov eax, dword [ebp]
cmp dword [eax + 4], 0
je 0x40b7dd
mov ebx, dword [eax]
movzx ebx, byte [ebx]
mov edi, dword [ebp + 0x1c]
add dword [ebp + 0x20], ecx
shl edi, 8
or edi, ebx
mov dword [ebp + 0x1c], edi
add dword [eax], esi
mov eax, dword [ebp]
add dword [eax + 4], edx
mov eax, dword [ebp]
add dword [eax + 8], esi
mov eax, dword [ebp]
cmp dword [eax + 8], 0
jne 0x40bd3a
add dword [eax + 0xc], esi
cmp dword [ebp + 0x20], ecx
jl 0x40bd00
mov edx, dword [ebp + 0x20]
mov eax, dword [ebp + 0x1c]
lea ecx, [edx - 8]
shr eax, cl
mov ecx, dword [ebp + 0xc5c]
add edx, 0xfffffff8
mov dword [ebp + 0x20], edx
and eax, 0xff
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [ebp + 0xc5c], ecx
mov dword [ebp + 4], esi
mov eax, 4
jmp case.default.0x409f1e