Function at 0x408040
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
mov edx, dword [esp + 0xc]
push 0xffffffffffffffff
push 0x49c815
push eax
mov eax, dword [esp + 0x10]
mov dword fs:[0], esp
push ebx
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x6e8], ecx
mov ecx, dword [esp + 0x28]
push edi
mov edi, dword [esp + 0x38]
mov ebx, ecx
imul ebx, edi
mov dword [esi + 0x714], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x6ec], edx
mov edx, dword [esp + 0x34]
mov dword [esi + 0x6f8], eax
imul eax, edx
mov dword [esi + 0x6f4], ebx
mov ebx, 1
cmp ecx, ebx
mov dword [esi + 0x6fc], ecx
mov dword [esi + 0x700], edx
mov dword [esi + 0x704], edi
mov dword [esi + 0x6f0], eax
mov byte [esi + 0x728], 1
mov dword [esp + 0x20], ebx
jl 0x408159
lea ebp, [esi + 0x5c]
mov dword [esp + 0x24], ebp
jmp 0x4080e0
mov eax, dword [esi + 0x6f8]
mov edi, 1
cmp eax, edi
jl 0x40813f
nop
mov eax, dword [esi + 0x704]
mov ecx, dword [esi + 0x700]
push eax
push ecx
push edi
push ebx
lea ebx, [edi - 1]
imul ebx, ecx
mov ecx, dword [esi + 0x6ec]
mov edx, dword [esi]
add ebx, ecx
push ebx
mov ebx, dword [esp + 0x34]
lea ecx, [ebx - 1]
imul ecx, eax
add ecx, dword [esi + 0x6e8]
mov eax, dword [esi + 0x714]
push ecx
push eax
mov ecx, esi
call dword [edx + 0xc]
mov dword [ebp], eax
mov eax, dword [esi + 0x6f8]
inc edi
add ebp, 4
cmp edi, eax
jle 0x4080f0
mov ebp, dword [esp + 0x24]
mov eax, dword [esi + 0x6fc]
inc ebx
add ebp, 0x54
cmp ebx, eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
jle 0x4080e0
mov eax, dword [esi + 0x6fc]
mov edi, 1
xor ebx, ebx
cmp eax, edi
mov ebp, edi
jl 0x4082d6
cmp dword [esi + 0x6f8], edi
mov eax, edi
jl 0x4082c2
mov edx, ebp
imul edx, edx, 0x15
cmp eax, 1
jne 0x408194
mov ecx, dword [esi + edx*4 + 8]
mov dword [ecx + 0x11c], ebx
jmp 0x4081a6
lea ecx, [edx + eax]
mov edi, dword [esi + ecx*4 + 4]
lea ecx, [esi + ecx*4]
mov ecx, dword [ecx]
mov dword [edi + 0x11c], ecx
cmp eax, dword [esi + 0x6f8]
lea ecx, [edx + eax]
lea ecx, [esi + ecx*4 + 4]
jne 0x4081bf
mov edi, dword [ecx]
mov dword [edi + 0x120], ebx
jmp 0x4081d0
mov ebx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 + 8]
mov dword [ebx + 0x120], edi
xor ebx, ebx
cmp ebp, 1
jne 0x4081e1
mov edi, dword [esi + eax*4 + 0x58]
mov dword [edi + 0x124], ebx
jmp 0x4081f2
mov ebx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 - 0x50]
mov dword [ebx + 0x124], edi
xor ebx, ebx
cmp ebp, dword [esi + 0x6fc]
jne 0x408204
mov edi, dword [ecx]
mov dword [edi + 0x128], ebx
jmp 0x408215
mov ebx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 + 0x58]
mov dword [ebx + 0x128], edi
xor ebx, ebx
cmp eax, 1
je 0x408232
cmp ebp, 1
je 0x408232
mov ebx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 - 0x54]
mov dword [ebx + 0x12c], edi
xor ebx, ebx
jmp 0x40823a
mov edi, dword [ecx]
mov dword [edi + 0x12c], ebx
cmp eax, 1
je 0x40825a
cmp ebp, dword [esi + 0x6fc]
je 0x40825a
mov ebx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 + 0x54]
mov dword [ebx + 0x130], edi
xor ebx, ebx
jmp 0x408262
mov edi, dword [ecx]
mov dword [edi + 0x130], ebx
cmp eax, dword [esi + 0x6f8]
je 0x408282
cmp ebp, 1
je 0x408282
mov ebx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 - 0x4c]
mov dword [ebx + 0x134], edi
xor ebx, ebx
jmp 0x40828a
mov edi, dword [ecx]
mov dword [edi + 0x134], ebx
cmp eax, dword [esi + 0x6f8]
je 0x4082ab
cmp ebp, dword [esi + 0x6fc]
je 0x4082ab
mov ecx, dword [ecx]
lea edi, [edx + eax]
mov edi, dword [esi + edi*4 + 0x5c]
mov dword [ecx + 0x138], edi
jmp 0x4082b3
mov ecx, dword [ecx]
mov dword [ecx + 0x138], ebx
mov ecx, dword [esi + 0x6f8]
inc eax
cmp eax, ecx
jle 0x408183
mov eax, dword [esi + 0x6fc]
inc ebp
cmp ebp, eax
mov edi, 1
jle 0x408170
mov eax, dword [esi + 0x710]
push 0x4a3872
push eax
call fcn.004694cc
add esp, 8
or ebp, 0xffffffff
test eax, eax
je 0x408359
push 0xf8
call fcn.0048a73b
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov dword [esp + 0x18], ebx
je 0x408313
mov ecx, eax
call fcn.00405cf0
jmp 0x408315
xor eax, eax
mov ecx, dword [esi + 0x710]
mov edx, dword [esi + 0x714]
push ecx
push edx
mov ecx, eax
mov dword [esp + 0x20], ebp
mov dword [esi + 0x718], eax
call fcn.004064f0
mov edx, dword [esi + 0x6ec]
sub edx, dword [esi + 0x70c]
mov ecx, dword [esi + 0x718]
mov eax, dword [ecx]
push edx
mov edx, dword [esi + 0x6e8]
sub edx, dword [esi + 0x708]
push edx
call dword [eax + 0xc]
push 0x44
call fcn.0048a73b
add esp, 4
mov dword [esp + 0x20], eax
cmp eax, ebx
mov dword [esp + 0x18], edi
je 0x408378
mov ecx, eax
call fcn.00408640
jmp 0x40837a
xor eax, eax
mov ecx, dword [esi + 0x714]
push ecx
mov ecx, eax
mov dword [esp + 0x1c], ebp
mov dword [esi + 0x71c], eax
call fcn.004086b0
mov ecx, esi
call fcn.004073e0
cmp dword [esi + 0x6fc], edi
mov eax, edi
jl 0x4083c2
jmp 0x4083b0
mov byte [esi + eax + 0x72a], bl
mov ecx, dword [esi + 0x6fc]
inc eax
cmp eax, ecx
jle 0x4083b0
cmp dword [esi + 0x6f8], edi
mov eax, edi
jl 0x4083e2
lea esp, [esp]
mov byte [esi + eax + 0x732], bl
mov ecx, dword [esi + 0x6f8]
inc eax
cmp eax, ecx
jle 0x4083d0
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xc
ret 0x1c