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

Disassembly:
sub esp, 0x160
push ebx
push ebp
mov ebp, dword [esp + 0x16c]
mov edx, dword [ebp + 4]
mov ebx, ecx
mov eax, edx
shr eax, 1
mov ecx, eax
imul ecx, ecx, 0x78
test dl, 1
push esi
mov esi, dword [ebp]
push edi
lea esi, [ecx + esi - 0x78]
mov ecx, 0x1e
lea edi, [esp + 0xf8]
rep movsd dword es:[edi], dword [esi]
jne 0x4de0c8
lea edx, [eax - 1]
test eax, edx
jne 0x4de09b
mov ecx, ebp
call fcn.004e33c0
test eax, eax
je 0x4de0c8
mov ecx, dword [ebp + 4]
mov esi, dword [ebp]
shr ecx, 1
imul ecx, ecx, 0x78
lea eax, [esp + 0xf8]
push eax
add ecx, esi
call fcn.004e3350
mov eax, dword [ebp + 4]
mov ecx, eax
and ecx, 0xfffffffe
add ecx, 2
and eax, 1
xor ecx, eax
mov dword [ebp + 4], ecx
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
shr edx, 1
imul edx, edx, 0x78
mov cl, byte [edx + eax - 4]
lea eax, [edx + eax - 0x78]
mov edx, dword [ebx]
mov byte [esp + 0x13], cl
lea ecx, [eax + 0x34]
push ecx
add eax, 0x60
push eax
mov ecx, ebx
call dword [edx + 0x48]
test eax, eax
jne 0x4de4d6
mov edx, dword [ebp + 4]
mov eax, dword [ebp]
shr edx, 1
imul edx, edx, 0x78
add eax, edx
lea esi, [eax - 0x6c]
mov ecx, 0xa
lea edi, [esp + 0xa8]
rep movsd dword es:[edi], dword [esi]
lea esi, [eax - 0x44]
mov eax, dword [ebx + 0x19c]
mov ecx, 0xa
lea edi, [esp + 0x80]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
test eax, 0xfffffffe
mov dword [esp + 0x1c], esi
jbe 0x4de3a2
lea esp, [esp]
mov ecx, dword [ebx + 0x198]
mov ecx, dword [ecx + esi*4]
mov dl, byte [esp + 0x178]
cmp byte [ecx + 0x215], dl
jne 0x4de38d
mov al, byte [esp + 0x13]
test al, al
je 0x4de172
mov al, byte [ecx + 0x260]
test al, al
jne 0x4de38d
mov eax, dword [ebp + 4]
mov edx, dword [ebp]
shr eax, 1
imul eax, eax, 0x78
lea eax, [eax + edx - 0x78]
mov dword [esp + 0x14], eax
mov al, byte [ecx + 0x217]
test al, al
je 0x4de196
mov edx, dword [ecx]
call dword [edx + 0x5c]
jmp 0x4de1a3
mov al, byte [ecx + 0x55]
test al, al
jne 0x4de1a7
mov al, byte [ecx + 0xed]
test al, al
je 0x4de1d5
mov al, byte [ebx + 0x260]
test al, al
jne 0x4de1d5
mov eax, dword [ebx + 0x198]
mov esi, dword [eax + esi*4]
mov al, byte [esi + 0x217]
test al, al
mov byte [esp + 0x12], 1
je 0x4de21a
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x5c]
jmp 0x4de2d0
mov byte [esp + 0x12], 0
lea esi, [esp + 0x80]
mov edx, dword [esp + 0x14]
mov al, byte [esp + 0x12]
test al, al
lea edi, [edx + 0x34]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
je 0x4de357
mov ecx, dword [ebx + 0x198]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ecx + edx*4]
lea eax, [esp + 0xd0]
push eax
call fcn.004dfd30
jmp 0x4de35e
mov al, byte [esi + 0x55]
test al, al
jne 0x4de22f
mov al, byte [esi + 0xed]
test al, al
je 0x4de2d8
mov al, byte [esi + 0x213]
test al, al
jne 0x4de2d8
mov ecx, dword [esi + 0x244]
test ecx, ecx
je 0x4de2d8
lea edx, [esp + 0x58]
push edx
lea edx, [esp + 0x4c]
mov dword [esp + 0x5c], 0x3f800000
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3f800000
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0x3f800000
mov byte [esp + 0x80], 1
mov eax, dword [ecx]
push edx
call dword [eax + 0x20]
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jge 0x4de2be
mov ecx, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x54]
jl 0x4de2d8
mov al, byte [esi + 0x213]
test al, al
jne 0x4de32e
mov esi, dword [esi + 0x244]
jmp 0x4de330
test al, al
jne 0x4de22f
mov dword [esp + 0x20], 0x3f800000
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0x3f800000
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0x3f800000
mov byte [esp + 0x44], 1
lea esi, [esp + 0x20]
jmp 0x4de1e1
xor esi, esi
test byte [esi + 8], 1
je 0x4de33d
mov ecx, esi
call fcn.004dbf70
add esi, 0x1dc
mov ecx, 0xa
lea edi, [esp + 0x20]
rep movsd dword es:[edi], dword [esi]
lea esi, [esp + 0x20]
jmp 0x4de1e1
lea eax, [esp + 0xa8]
mov ecx, dword [esp + 0x14]
lea edi, [ecx + 0xc]
mov esi, eax
mov eax, dword [esp + 0x1c]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
mov edx, dword [ebx + 0x198]
mov ecx, dword [edx + eax*4]
push ebp
call fcn.004df090
test eax, eax
jne 0x4de4d6
mov esi, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x19c]
inc esi
shr ecx, 1
cmp esi, ecx
mov dword [esp + 0x1c], esi
jb 0x4de140
mov ecx, dword [ebp + 4]
mov eax, ecx
shr eax, 1
xor edx, edx
cmp eax, edx
je 0x4de4d4
lea ebx, [eax - 1]
and ecx, 1
cmp ebx, eax
je 0x4de4d4
cmp ecx, edx
je 0x4de428
mov edx, ebx
imul edx, edx, 0x78
push edx
call fcn.004991a0
mov edx, eax
add esp, 4
test edx, edx
mov dword [esp + 0x14], edx
je 0x4de4c4
mov eax, dword [ebp + 4]
shr eax, 1
cmp eax, ebx
jbe 0x4de3ec
mov eax, ebx
mov esi, dword [ebp]
test esi, esi
je 0x4de420
test eax, eax
je 0x4de40c
mov ecx, eax
imul ecx, ecx, 0x78
mov eax, ecx
shr ecx, 2
mov edi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp]
test eax, eax
je 0x4de420
push eax
call fcn.00499410
mov edx, dword [esp + 0x18]
add esp, 4
mov dword [ebp], edx
jmp 0x4de4c4
mov esi, 1
cmp ebx, esi
jb 0x4de437
add esi, esi
cmp esi, ebx
jbe 0x4de431
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
fild qword [esp + 0x14]
fstp dword [esp + 0x14]
mov ecx, dword [esp + 0x14]
shr ecx, 0x17
and ecx, 0xff
sub ecx, 0x7f
js 0x4de460
mov edx, 1
shl edx, cl
cmp edx, eax
jae 0x4de466
add edx, edx
cmp edx, esi
je 0x4de4c4
mov edx, esi
imul edx, edx, 0x78
push edx
call fcn.004991a0
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x14], edi
je 0x4de4c4
mov eax, dword [ebp + 4]
shr eax, 1
cmp eax, esi
jbe 0x4de48d
mov eax, esi
mov edx, dword [ebp]
test edx, edx
je 0x4de4c1
test eax, eax
je 0x4de4b1
mov ecx, eax
imul ecx, ecx, 0x78
mov eax, ecx
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x14]
mov eax, dword [ebp]
test eax, eax
je 0x4de4c1
push eax
call fcn.00499410
add esp, 4
mov dword [ebp], edi
mov ecx, dword [ebp + 4]
lea eax, [ebx + ebx]
xor ecx, eax
and ecx, 1
xor ecx, eax
mov dword [ebp + 4], ecx
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x160
ret 8