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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
xorps xmm0, xmm0
movups xmmword [esp + 0xdc], xmm0
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0xc0], xmm0
movaps xmmword [esp + 0xb0], xmm0
movaps xmmword [esp + 0xa0], xmm0
movups xmmword [esp + 0x12c], xmm0
movaps xmmword [esp + 0x120], xmm0
movaps xmmword [esp + 0x110], xmm0
movaps xmmword [esp + 0x100], xmm0
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0x50], xmm0
movaps xmmword [esp + 0x60], xmm0
movaps xmmword [esp + 0x70], xmm0
movaps xmmword [esp + 0x80], xmm0
movups xmmword [esp + 0x8c], xmm0
mov dword [esp + 0x10], 0x1d
cmp dword [ecx + 0x474], 0
mov dword [esp + 0xc], 0x1d
jne 0x40da49
mov dword [esp + 0xc], 0x1c
cmp dword [ecx + 0x470], 0
jne 0x40da49
mov dword [esp + 0xc], 0x1b
cmp dword [ecx + 0x46c], 0
jne 0x40da49
mov dword [esp + 0xc], 0x1a
cmp dword [ecx + 0x468], 0
jne 0x40da49
mov dword [esp + 0xc], 0x19
cmp dword [ecx + 0x464], 0
jne 0x40da49
mov dword [esp + 0xc], 0x18
cmp dword [ecx + 0x460], 0
jne 0x40da49
mov dword [esp + 0xc], 0x17
cmp dword [ecx + 0x45c], 0
jne 0x40da49
mov dword [esp + 0xc], 0x16
cmp dword [ecx + 0x458], 0
jne 0x40da49
mov dword [esp + 0xc], 0x15
cmp dword [ecx + 0x454], 0
jne 0x40da49
mov dword [esp + 0xc], 0x14
cmp dword [ecx + 0x450], 0
jne 0x40da49
mov dword [esp + 0xc], 0x13
cmp dword [ecx + 0x44c], 0
jne 0x40da49
mov dword [esp + 0xc], 0x12
cmp dword [ecx + 0x448], 0
jne 0x40da49
mov dword [esp + 0xc], 0x11
cmp dword [ecx + 0x444], 0
jne 0x40da49
mov dword [esp + 0xc], 0x10
cmp dword [ecx + 0x440], 0
jne 0x40da49
mov dword [esp + 0xc], 0xf
cmp dword [ecx + 0x43c], 0
jne 0x40da49
mov dword [esp + 0xc], 0xe
cmp dword [ecx + 0x438], 0
jne 0x40da49
mov dword [esp + 0xc], 0xd
cmp dword [ecx + 0x434], 0
jne 0x40da49
mov dword [esp + 0xc], 0xc
cmp dword [ecx + 0x430], 0
jne 0x40da49
mov dword [esp + 0xc], 0xb
cmp dword [ecx + 0x42c], 0
jne 0x40da49
mov dword [esp + 0xc], 0xa
cmp dword [ecx + 0x428], 0
jne 0x40da49
mov dword [esp + 0xc], 9
cmp dword [ecx + 0x424], 0
jne 0x40da49
mov dword [esp + 0xc], 8
cmp dword [ecx + 0x420], 0
jne 0x40da49
mov dword [esp + 0xc], 7
cmp dword [ecx + 0x41c], 0
jne 0x40da49
mov dword [esp + 0xc], 6
cmp dword [ecx + 0x418], 0
jne 0x40da49
mov dword [esp + 0xc], 5
cmp dword [ecx + 0x414], 0
jne 0x40da49
mov dword [esp + 0xc], 4
cmp dword [ecx + 0x410], 0
jne 0x40da49
mov dword [esp + 0xc], 3
cmp dword [ecx + 0x40c], 0
jne 0x40da49
mov dword [esp + 0xc], 2
cmp dword [ecx + 0x408], 0
jne 0x40da49
xor eax, eax
cmp dword [ecx + 0x404], 0
setne al
mov dword [esp + 0xc], eax
mov dword [esp + 0x38], ecx
cmp dword [edx + 0x74], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x1c
cmp dword [edx + 0x70], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x1b
cmp dword [edx + 0x6c], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x1a
cmp dword [edx + 0x68], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x19
cmp dword [edx + 0x64], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x18
cmp dword [edx + 0x60], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x17
cmp dword [edx + 0x5c], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x16
cmp dword [edx + 0x58], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x15
cmp dword [edx + 0x54], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x14
cmp dword [edx + 0x50], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x13
cmp dword [edx + 0x4c], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x12
cmp dword [edx + 0x48], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x11
cmp dword [edx + 0x44], 0
jne 0x40dc26
mov dword [esp + 0x10], 0x10
cmp dword [edx + 0x40], 0
jne 0x40dc26
mov dword [esp + 0x10], 0xf
cmp dword [edx + 0x3c], 0
jne 0x40dc26
mov dword [esp + 0x10], 0xe
cmp dword [edx + 0x38], 0
jne 0x40dc26
mov dword [esp + 0x10], 0xd
cmp dword [edx + 0x34], 0
jne 0x40dc26
mov dword [esp + 0x10], 0xc
cmp dword [edx + 0x30], 0
jne 0x40dc26
mov dword [esp + 0x10], 0xb
cmp dword [edx + 0x2c], 0
jne 0x40dc26
mov dword [esp + 0x10], 0xa
cmp dword [edx + 0x28], 0
jne 0x40dc26
mov dword [esp + 0x10], 9
cmp dword [edx + 0x24], 0
jne 0x40dc26
mov dword [esp + 0x10], 8
cmp dword [edx + 0x20], 0
jne 0x40dc26
mov dword [esp + 0x10], 7
cmp dword [edx + 0x1c], 0
jne 0x40dc26
mov dword [esp + 0x10], 6
cmp dword [edx + 0x18], 0
jne 0x40dc26
mov dword [esp + 0x10], 5
cmp dword [edx + 0x14], 0
jne 0x40dc26
mov dword [esp + 0x10], 4
cmp dword [edx + 0x10], 0
jne 0x40dc26
mov dword [esp + 0x10], 3
cmp dword [edx + 0xc], 0
jne 0x40dc26
mov dword [esp + 0x10], 2
cmp dword [edx + 8], 0
jne 0x40dc26
xor eax, eax
cmp dword [edx + 4], 0
setne al
mov dword [esp + 0x10], eax
mov edi, dword [ebp + 0x18]
mov eax, dword [ebp + 0x10]
or eax, dword [ebp + 0xc]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
lea eax, [esi + ecx]
xor eax, 0xfffffeff
mov dword [esp + 0x34], eax
mov eax, 0xffffff00
sub eax, esi
lea eax, [edx + eax*4]
mov dword [esp + 0x48], eax
lea eax, [esi + 0x101]
mov dword [esp + 0x1c], eax
lea esi, [esi + ecx + 0x102]
mov ecx, dword [esp + 0x38]
lea eax, [ecx + 4]
mov dword [esp + 0x44], eax
xor eax, eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x18], 0
xor ebx, ebx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x3c], esi
jmp 0x40dcc4
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
cmp eax, esi
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
jae 0x40e1d9
mov dword [esp + 0x30], eax
mov esi, eax
sub esi, dword [esp + 0x1c]
lea ecx, [ecx + eax*4]
lea eax, [edx + esi*4]
cmovb eax, ecx
movzx eax, byte [eax]
cmp dword [ebp + 8], 0
je 0x40dcf0
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
jmp 0x40dd0f
cmp dword [esp + 0x40], 0
mov edx, dword [esp + 0x20]
je 0x40df88
mov dword [esp + 0x14], 0
test eax, eax
mov ecx, dword [esp + 0x24]
jne 0x40dd84
mov eax, dword [esp + 0x30]
add eax, 1
mov esi, dword [esp + 0x3c]
cmp eax, esi
jae 0x40dd80
mov dword [esp + 0x28], ebx
mov ecx, dword [esp + 0x30]
sub esi, ecx
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0x48]
lea edx, [edx + ecx*4]
mov esi, dword [esp + 0x44]
lea esi, [esi + ecx*4]
mov ecx, 1
nop
cmp eax, dword [esp + 0x1c]
mov edi, edx
cmovb edi, esi
mov ebx, dword [esp + 0x14]
cmp ebx, dword [edi]
jne 0x40dda0
add ecx, 1
mov edi, dword [esp + 0x34]
add edi, eax
add edi, 1
add eax, 1
add edx, 4
add esi, 4
cmp edi, 1
jne 0x40dd40
mov esi, dword [esp + 0x2c]
jmp 0x40dda2
mov eax, dword [esp + 0x14]
add dword [esp + eax*4 + 0x50], 1
mov esi, 1
mov dword [esp + 0x14], eax
mov dword [esp + 0x2c], 1
jmp 0x40e032
mov esi, ecx
cmp dword [esp + 0x14], 0
mov ebx, dword [esp + 0x28]
mov edi, dword [ebp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], esi
jne 0x40df94
cmp esi, 3
jb 0x40df94
cmp dword [ebp + 0x10], 0
je 0x40ddd4
cmp esi, 0xb
jae 0x40de3e
cmp dword [ebp + 0xc], 0
je 0x40df91
mov dword [esp + 0x14], 0
cmp esi, 3
jae 0x40df0a
mov edi, dword [ebp + 0x18]
jmp 0x40dfe0
mov ebx, edx
lea eax, [edx*8]
push eax
push dword [esp + 0x1c]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
mov edx, ebx
add ecx, 1
lea eax, [edi - 0xb]
mov ebx, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
mov ecx, ebx
add edx, 1
mov ebx, dword [esp + 0x28]
add dword [esp + 0x98], 1
sub esi, edi
cmp esi, 0xa
jbe 0x40ddd4
cmp esi, 0x8a
mov edi, 0x8a
cmovb edi, esi
cmp dword [ebp + 0x18], 0
je 0x40de2f
lea eax, [ecx - 1]
test ecx, eax
jne 0x40de8c
mov dword [esp + 0x20], edx
test ecx, ecx
je 0x40de78
mov edx, ebx
mov ebx, ecx
lea eax, [ecx*8]
push eax
push edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40de84
mov ebx, ecx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ecx, ebx
mov edx, dword [esp + 0x20]
mov ebx, eax
mov dword [ebx + ecx*4], 0x12
lea eax, [edx - 1]
test edx, eax
mov dword [esp + 0x28], ebx
jne 0x40de17
mov dword [esp + 0x24], ecx
test edx, edx
jne 0x40ddf7
mov ebx, edx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
jmp 0x40de0d
mov ebx, edx
lea eax, [edx*8]
push eax
push dword [esp + 0x1c]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
mov edx, ebx
add ecx, 1
lea eax, [edi - 3]
mov ebx, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
mov ecx, ebx
add edx, 1
mov ebx, dword [esp + 0x28]
add dword [esp + 0x94], 1
sub esi, edi
cmp esi, 2
jbe 0x40ddef
cmp esi, 0xa
mov edi, 0xa
cmovb edi, esi
cmp dword [ebp + 0x18], 0
je 0x40def7
lea eax, [ecx - 1]
test ecx, eax
jne 0x40df55
mov dword [esp + 0x20], edx
test ecx, ecx
je 0x40df41
mov edx, ebx
mov ebx, ecx
lea eax, [ecx*8]
push eax
push edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40df4d
mov ebx, ecx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ecx, ebx
mov edx, dword [esp + 0x20]
mov ebx, eax
mov dword [ebx + ecx*4], 0x11
lea eax, [edx - 1]
test edx, eax
mov dword [esp + 0x28], ebx
jne 0x40dedf
mov dword [esp + 0x24], ecx
test edx, edx
jne 0x40debf
mov ebx, edx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
jmp 0x40ded5
mov ecx, dword [esp + 0x24]
jmp 0x40dd84
mov edi, dword [ebp + 0x18]
cmp dword [ebp + 8], 0
je 0x40dfe0
cmp esi, 4
jb 0x40dfe0
mov eax, dword [esp + 0x14]
add dword [esp + eax*4 + 0x50], 1
test edi, edi
je 0x40e10b
lea eax, [ecx - 1]
test ecx, eax
jne 0x40e0b0
mov dword [esp + 0x20], edx
test ecx, ecx
je 0x40e09c
mov edi, ecx
lea eax, [ecx*8]
push eax
push ebx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e0a8
mov eax, dword [esp + 0x14]
add dword [esp + eax*4 + 0x50], esi
test esi, esi
jne 0x40e032
jmp 0x40dca0
mov ebx, edx
lea eax, [edx*8]
push eax
push dword [esp + 0x1c]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
mov dword [esp + 0x18], eax
mov eax, edi
mov edi, dword [ebp + 0x18]
mov ecx, dword [esp + 0x24]
mov edx, ebx
mov ebx, eax
add ecx, 1
mov eax, dword [esp + 0x18]
mov dword [eax + edx*4], 0
add edx, 1
add esi, 0xffffffff
je 0x40dca0
test edi, edi
je 0x40e029
lea eax, [ecx - 1]
test ecx, eax
jne 0x40e06f
mov edi, edx
test ecx, ecx
je 0x40e05a
mov edx, ebx
mov ebx, ecx
lea eax, [ecx*8]
push eax
push edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e066
mov ebx, ecx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ecx, ebx
mov edx, edi
mov edi, dword [ebp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x14]
mov dword [ebx + ecx*4], eax
lea eax, [edx - 1]
test edx, eax
jne 0x40e018
mov dword [esp + 0x24], ecx
mov edi, ebx
test edx, edx
jne 0x40dff1
mov ebx, edx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
jmp 0x40e007
mov edi, ecx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ebx, eax
mov ecx, edi
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x14]
mov dword [ebx + ecx*4], eax
lea eax, [edx - 1]
test edx, eax
jne 0x40e0fa
mov edi, ecx
mov dword [esp + 0x28], ebx
test edx, edx
je 0x40e0e0
mov ebx, edx
lea eax, [edx*8]
push eax
push dword [esp + 0x1c]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e0ec
mov ebx, edx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov ecx, edi
mov edx, ebx
mov ebx, eax
add ecx, 1
mov eax, dword [esp + 0x18]
mov dword [eax + edx*4], 0
add edx, 1
add esi, 0xffffffff
jmp 0x40e151
mov ebx, edx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x24]
mov edx, ebx
add ecx, 1
lea eax, [edi - 3]
mov ebx, ecx
mov ecx, dword [esp + 0x18]
mov dword [ecx + edx*4], eax
mov ecx, ebx
add edx, 1
mov ebx, dword [esp + 0x28]
add dword [esp + 0x90], 1
sub esi, edi
cmp esi, 2
jbe 0x40ddef
cmp esi, 6
mov edi, 6
cmovb edi, esi
cmp dword [ebp + 0x18], 0
je 0x40e13e
lea eax, [ecx - 1]
test ecx, eax
jne 0x40e19c
mov dword [esp + 0x20], edx
test ecx, ecx
je 0x40e188
mov edx, ebx
mov ebx, ecx
lea eax, [ecx*8]
push eax
push edx
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e194
mov ebx, ecx
push 4
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov ecx, ebx
mov edx, dword [esp + 0x20]
mov ebx, eax
mov dword [ebx + ecx*4], 0x10
lea eax, [edx - 1]
test edx, eax
mov dword [esp + 0x28], ebx
jne 0x40e126
mov dword [esp + 0x24], ecx
test edx, edx
je 0x40e110
mov ebx, edx
lea eax, [edx*8]
push eax
push dword [esp + 0x1c]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e11c
mov dword [esp + 0x28], ebx
lea esi, [esp + 0xa0]
lea eax, [esp + 0x50]
push esi
push 7
push 0x13
push eax
call fcn.00422e10
add esp, 0x10
test edi, edi
je 0x40e20f
lea eax, [esp + 0xf0]
push eax
push 7
push 0x13
push esi
call fcn.00422a50
add esp, 0x10
mov dword [esp + 0x1c], 0xf
cmp dword [esp + 0x8c], 0
jne 0x40e313
mov dword [esp + 0x1c], 0xe
cmp dword [esp + 0x54], 0
jne 0x40e313
mov dword [esp + 0x1c], 0xd
cmp dword [esp + 0x88], 0
jne 0x40e313
mov dword [esp + 0x1c], 0xc
cmp dword [esp + 0x58], 0
jne 0x40e313
mov dword [esp + 0x1c], 0xb
cmp dword [esp + 0x84], 0
jne 0x40e313
mov dword [esp + 0x1c], 0xa
cmp dword [esp + 0x5c], 0
jne 0x40e313
mov dword [esp + 0x1c], 9
cmp dword [esp + 0x80], 0
jne 0x40e313
mov dword [esp + 0x1c], 8
cmp dword [esp + 0x60], 0
jne 0x40e313
mov dword [esp + 0x1c], 7
cmp dword [esp + 0x7c], 0
jne 0x40e313
mov dword [esp + 0x1c], 6
cmp dword [esp + 0x64], 0
jne 0x40e313
mov dword [esp + 0x1c], 5
cmp dword [esp + 0x78], 0
jne 0x40e313
mov dword [esp + 0x1c], 4
cmp dword [esp + 0x68], 0
jne 0x40e313
mov dword [esp + 0x1c], 3
cmp dword [esp + 0x74], 0
jne 0x40e313
mov dword [esp + 0x1c], 2
cmp dword [esp + 0x6c], 0
jne 0x40e313
xor eax, eax
cmp dword [esp + 0x70], 0
setne al
mov dword [esp + 0x1c], eax
test edi, edi
mov esi, dword [ebp + 0x14]
je 0x40e854
mov al, byte [esi]
xor ecx, ecx
jmp 0x40e353
mov eax, dword [edi]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [edi]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, dword [esp + 0x14]
add ecx, 1
cmp ecx, 5
je 0x40e396
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x14], ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e334
lea eax, [edx - 1]
test edx, eax
jne 0x40e324
test edx, edx
je 0x40e383
add edx, edx
push edx
push dword [edi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e38d
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [edi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
jmp 0x40e326
xor ecx, ecx
jmp 0x40e3c9
mov eax, dword [edi]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [edi]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, dword [esp + 0x14]
add ecx, 1
cmp ecx, 5
je 0x40e40c
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x14], ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e3aa
lea eax, [edx - 1]
test edx, eax
jne 0x40e39a
test edx, edx
je 0x40e3f9
add edx, edx
push edx
push dword [edi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e403
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [edi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
jmp 0x40e39c
xor ecx, ecx
jmp 0x40e43f
mov eax, dword [edi]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [edi]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, dword [esp + 0x14]
add ecx, 1
cmp ecx, 4
je 0x40e482
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e420
lea eax, [edx - 1]
test edx, eax
jne 0x40e410
test edx, edx
je 0x40e46f
add edx, edx
push edx
push dword [edi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e479
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [edi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
jmp 0x40e412
mov ecx, dword [esp + 0x1c]
add ecx, 3
mov dword [esp + 0x34], ecx
xor ecx, ecx
jmp 0x40e4b1
mov edx, dword [esp + 0x20]
lea ecx, [edx + 1]
cmp edx, dword [esp + 0x34]
je 0x40e548
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx*4 + 0x4aec7c]
mov ecx, dword [esp + ecx*4 + 0xa0]
mov dword [esp + 0x14], ecx
xor ecx, ecx
jmp 0x40e4fe
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, edi
add ecx, 1
cmp ecx, 3
je 0x40e4a0
mov ebx, dword [esp + 0x14]
mov edi, ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e4de
lea eax, [edx - 1]
test edx, eax
jne 0x40e4cb
test edx, edx
je 0x40e52f
add edx, edx
push edx
mov esi, dword [ebp + 0x18]
push dword [esi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e53c
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, dword [ebp + 0x18]
mov dword [esi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov esi, dword [ebp + 0x14]
jmp 0x40e4d0
cmp dword [esp + 0x24], 0
mov edi, dword [ebp + 0x18]
je 0x40e854
xor ebx, ebx
jmp 0x40e581
mov edi, dword [ebp + 0x18]
shl ebx, cl
mov eax, dword [edi]
or byte [edx + eax - 1], bl
mov al, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ebx, dword [esp + 0x20]
add ebx, 1
cmp ebx, dword [esp + 0x24]
mov edi, dword [ebp + 0x18]
je 0x40e854
mov ecx, dword [esp + 0x28]
mov edx, dword [ecx + ebx*4]
mov ecx, dword [esp + edx*4 + 0xa0]
test ecx, ecx
mov dword [esp + 0x20], ebx
je 0x40e63e
mov edx, dword [esp + edx*4 + 0xf0]
mov dword [esp + 0x14], edx
add ecx, 0xffffffff
jmp 0x40e5db
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, edi
add ecx, 0xffffffff
jae 0x40e630
mov ebx, dword [esp + 0x14]
mov edi, ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e5be
lea eax, [edx - 1]
test edx, eax
jne 0x40e5ab
test edx, edx
je 0x40e60c
add edx, edx
push edx
mov esi, dword [ebp + 0x18]
push dword [esi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e619
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, dword [ebp + 0x18]
mov dword [esi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov esi, dword [ebp + 0x14]
jmp 0x40e5b0
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x20]
mov edx, dword [ecx + ebx*4]
mov edi, dword [ebp + 0x18]
cmp edx, 0x12
mov ecx, dword [esp + 0x18]
je 0x40e730
cmp edx, 0x11
je 0x40e6a0
cmp edx, 0x10
jne 0x40e56d
mov ebx, dword [ecx + ebx*4]
mov dword [esp + 0x14], ebx
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e7e0
lea eax, [edx - 1]
test edx, eax
jne 0x40e7be
test edx, edx
je 0x40e7c2
add edx, edx
push edx
push dword [edi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e7cc
mov edx, ecx
mov ecx, dword [ecx + ebx*4]
mov dword [esp + 0x14], ecx
xor ecx, ecx
jmp 0x40e6e4
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, edi
add ecx, 1
cmp ecx, 3
je 0x40e56d
mov ebx, dword [esp + 0x14]
mov edi, ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e6c0
lea eax, [edx - 1]
test edx, eax
jne 0x40e6ad
test edx, edx
je 0x40e715
add edx, edx
push edx
mov esi, dword [ebp + 0x18]
push dword [esi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e722
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, dword [ebp + 0x18]
mov dword [esi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov esi, dword [ebp + 0x14]
jmp 0x40e6b2
mov edx, ecx
mov ecx, dword [ecx + ebx*4]
mov dword [esp + 0x14], ecx
xor ecx, ecx
jmp 0x40e774
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
movzx eax, byte [esi]
mov ecx, eax
shl ebx, cl
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
or byte [edx + eax - 1], bl
movzx eax, byte [esi]
add al, 1
and al, 7
mov byte [esi], al
mov ecx, edi
add ecx, 1
cmp ecx, 7
je 0x40e56d
mov ebx, dword [esp + 0x14]
mov edi, ecx
shr ebx, cl
and ebx, 1
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
test al, al
jne 0x40e750
lea eax, [edx - 1]
test edx, eax
jne 0x40e73d
test edx, edx
je 0x40e7a5
add edx, edx
push edx
mov esi, dword [ebp + 0x18]
push dword [esi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e7b2
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov esi, dword [ebp + 0x18]
mov dword [esi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov esi, dword [ebp + 0x14]
jmp 0x40e742
mov eax, dword [edi]
jmp 0x40e7d3
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [edi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
mov al, byte [esi]
mov edi, ecx
mov ecx, eax
shl ebx, cl
mov eax, dword [ebp + 0x18]
mov eax, dword [eax]
or byte [edx + eax - 1], bl
mov cl, byte [esi]
add cl, 1
mov ebx, dword [esp + 0x14]
shr ebx, 1
and ebx, 1
and cl, 7
mov byte [esi], cl
mov edx, dword [edi]
jne 0x40e55a
lea eax, [edx - 1]
test edx, eax
jne 0x40e827
test edx, edx
mov edi, dword [ebp + 0x18]
je 0x40e831
add edx, edx
push edx
push dword [edi]
call sub.api_ms_win_crt_heap_l1_1_0.dll_realloc
add esp, 8
jmp 0x40e83b
mov edi, dword [ebp + 0x18]
mov eax, dword [edi]
mov ecx, dword [ebp + 0x1c]
jmp 0x40e842
push 1
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
add esp, 4
mov dword [edi], eax
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ecx]
mov byte [eax + edx], 0
mov edx, dword [ecx]
add edx, 1
mov dword [ecx], edx
mov cl, byte [esi]
jmp 0x40e55d
movdqu xmm2, xmmword [esp + 0xdc]
movdqu xmm0, xmmword [esp + 0xac]
movdqu xmm1, xmmword [esp + 0xbc]
movdqu xmm3, xmmword [esp + 0xcc]
movdqu xmm4, xmmword [esp + 0x7c]
pshufd xmm5, xmm4, 0xf5
pmuludq xmm4, xmm3
pshufd xmm3, xmm3, 0xf5
pmuludq xmm5, xmm3
movdqu xmm3, xmmword [esp + 0x5c]
pshufd xmm4, xmm4, 0xe8
pshufd xmm5, xmm5, 0xe8
punpckldq xmm4, xmm5
pshufd xmm5, xmm3, 0xf5
pmuludq xmm3, xmm0
pshufd xmm6, xmm0, 0xf5
pmuludq xmm6, xmm5
movdqu xmm0, xmmword [esp + 0x8c]
pshufd xmm3, xmm3, 0xe8
pshufd xmm5, xmm6, 0xe8
punpckldq xmm3, xmm5
paddd xmm3, xmm4
pshufd xmm4, xmm0, 0xf5
movdqa xmm5, xmm0
pmuludq xmm5, xmm2
pshufd xmm2, xmm2, 0xf5
pmuludq xmm4, xmm2
movdqu xmm2, xmmword [esp + 0x6c]
pshufd xmm5, xmm5, 0xe8
pshufd xmm4, xmm4, 0xe8
punpckldq xmm5, xmm4
pshufd xmm4, xmm2, 0xf5
pmuludq xmm2, xmm1
pshufd xmm1, xmm1, 0xf5
pmuludq xmm1, xmm4
pshufd xmm2, xmm2, 0xe8
pshufd xmm1, xmm1, 0xe8
punpckldq xmm2, xmm1
paddd xmm2, xmm5
paddd xmm2, xmm3
pshufd xmm1, xmm2, 0xee
paddd xmm1, xmm2
pshufd xmm2, xmm1, 0x55
paddd xmm2, xmm1
movd eax, xmm2
pshufd xmm1, xmm0, 0x55
movd ecx, xmm1
pshufd xmm1, xmm0, 0xee
movd edx, xmm1
pshufd xmm0, xmm0, 0xff
mov esi, dword [esp + 0x58]
imul esi, dword [esp + 0xa8]
add eax, esi
mov esi, dword [esp + 0x54]
imul esi, dword [esp + 0xa4]
add eax, esi
mov esi, dword [esp + 0x50]
imul esi, dword [esp + 0xa0]
add eax, esi
movd esi, xmm0
mov edi, dword [esp + 0x1c]
lea edi, [edi + edi*2]
add eax, edi
lea eax, [eax + ecx*2]
lea ecx, [edx + edx*2]
add ecx, eax
lea eax, [esi*8]
sub eax, esi
lea ebx, [eax + ecx]
add ebx, 0x1a
push dword [esp + 0x28]
call fcn.0040af20
add esp, 4
push dword [esp + 0x18]
call fcn.0040af20
add esp, 4
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret