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

Disassembly:
sub esp, 0x28
mov ecx, dword [esp + 0x50]
push ebx
mov ebx, ecx
mov eax, dword [esp + 0x44]
imul ebx, dword [esp + 0x48]
push ebp
mov edx, dword [esp + 0x44]
push esi
push edi
mov edi, dword [esp + 0x5c]
mov esi, dword [esp + 0x3c]
add ebx, edi
mov ebp, dword [esp + 0x64]
add ebx, eax
mov eax, dword [esp + 0x40]
imul edx, eax
add esi, edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], ebx
lea esi, [esi + edx*4]
cdq
and edx, 3
mov dword [esp + 0x48], esi
add eax, edx
mov edx, dword [esp + 0x70]
add edx, ecx
mov ecx, dword [esp + 0x6c]
imul edx, dword [esp + 0x68]
add edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x74]
sar eax, 2
add edx, edi
mov edi, dword [esp + 0x58]
cmp ebp, 0xc
mov dword [esp + 0x18], eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x70], edx
jge 0x414c2c
mov ecx, dword [esp + 0x78]
test ecx, ecx
jle 0x4152aa
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x64], ecx
jmp 0x414aeb
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x74]
test ecx, ecx
jle 0x414bea
mov dword [esp + 0x3c], ecx
mov al, byte [edx]
test al, al
mov byte [esp + 0x6c], al
je 0x414bce
cmp al, 0xff
jne 0x414b1f
xor eax, eax
mov al, byte [ebx]
mov ecx, dword [edi + eax*4 + 0x400]
mov dword [esi], ecx
jmp 0x414bce
mov ecx, dword [esi]
xor edx, edx
mov dl, byte [ebx]
mov eax, dword [edi + edx*4 + 0x400]
mov edx, dword [ebp + 4]
and ecx, edx
mov dword [esp + 0x40], edx
mov edx, dword [esi]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x6c]
and ecx, 0xff
mov dword [esp + 0x4c], ecx
mov ecx, dword [ebp + 0x14]
mov ebp, dword [ebp + 0x24]
and edx, ecx
mov dword [esp + 0x78], edx
mov edx, dword [esi]
and edx, ebp
mov ebp, eax
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x40]
and ebp, edx
mov edx, dword [esp + 0x60]
sub ebp, edx
mov dword [esp + 0x58], ecx
imul ebp, dword [esp + 0x4c]
sar ebp, 8
add ebp, edx
mov edx, dword [esp + 0x40]
and ebp, edx
mov edx, eax
and edx, ecx
mov ecx, dword [esp + 0x78]
sub edx, ecx
imul edx, dword [esp + 0x4c]
sar edx, 8
add edx, ecx
mov ecx, dword [esp + 0x58]
and edx, ecx
or ebp, edx
mov edx, dword [esp + 0x50]
mov dword [esp + 0x60], ebp
mov ebp, dword [esp + 0x44]
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x78], ecx
and eax, ecx
mov ecx, dword [esp + 0x5c]
sub eax, ecx
imul eax, dword [esp + 0x4c]
sar eax, 8
add eax, ecx
mov ecx, dword [esp + 0x78]
and eax, ecx
mov ecx, dword [esp + 0x60]
or ecx, eax
mov dword [esi], ecx
mov eax, dword [esp + 0x3c]
inc ebx
add esi, 4
inc edx
dec eax
mov dword [esp + 0x50], edx
mov dword [esp + 0x3c], eax
jne 0x414afb
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x70]
add ebx, esi
lea esi, [edx + eax*4]
mov edx, dword [esp + 0x68]
add ecx, edx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x48], esi
dec ecx
mov dword [esp + 0x64], ecx
jne 0x414ae7
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret
mov eax, ecx
cdq
mov ecx, eax
xor ecx, edx
sub ecx, edx
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
and eax, 3
xor eax, edx
sub eax, edx
mov dword [esp + 0x74], eax
mov eax, 4
mov edx, dword [esp + 0x74]
sub eax, edx
mov dword [esp + 0x3c], eax
lea eax, [ebp + ecx]
cdq
xor eax, edx
sub eax, edx
and eax, 3
xor eax, edx
mov ecx, eax
mov eax, dword [esp + 0x3c]
sub ecx, edx
cmp eax, 4
mov dword [esp + 0x34], ecx
jne 0x414c81
mov dword [esp + 0x3c], 0
mov eax, dword [esp + 0x3c]
sub ebp, eax
sub ebp, ecx
mov ecx, dword [esp + 0x78]
sar ebp, 2
test ecx, ecx
mov dword [esp + 0x20], ebp
jle 0x4152aa
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
jmp 0x414ca6
mov eax, dword [esp + 0x3c]
test eax, eax
jle 0x414d8a
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x50]
mov al, byte [eax]
test al, al
mov byte [esp + 0x6c], al
je 0x414d6a
cmp al, 0xff
jne 0x414cda
xor edx, edx
mov dl, byte [ebx]
mov eax, dword [edi + edx*4 + 0x400]
mov dword [esi], eax
jmp 0x414d6a
mov ebp, dword [esi]
mov eax, dword [ecx + 4]
xor edx, edx
mov dl, byte [ebx]
mov ebx, ebp
and ebx, eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx + 0x14]
mov edx, dword [edi + edx*4 + 0x400]
and ebp, ebx
mov ebx, dword [ecx + 0x24]
mov dword [esp + 0x78], ebp
mov ebp, dword [esi]
and eax, 0xff
and ebp, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x5c], ebp
mov ebp, edx
and ebp, ebx
mov ebx, dword [esp + 0x60]
sub ebp, ebx
mov dword [esp + 0x4c], eax
imul ebp, eax
mov eax, dword [ecx + 4]
sar ebp, 8
add ebp, ebx
mov ebx, dword [ecx + 0x14]
and ebp, eax
mov eax, edx
and eax, ebx
mov ebx, dword [esp + 0x78]
sub eax, ebx
imul eax, dword [esp + 0x4c]
sar eax, 8
add eax, ebx
mov ebx, dword [ecx + 0x14]
and eax, ebx
mov ebx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [ecx + 0x24]
and edx, eax
sub edx, ebx
imul edx, dword [esp + 0x4c]
sar edx, 8
add edx, ebx
mov ebx, dword [esp + 0x14]
and edx, eax
or ebp, edx
mov dword [esi], ebp
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
inc ebx
add esi, 4
inc edx
dec eax
mov dword [esp + 0x14], ebx
mov dword [esp + 0x50], edx
mov dword [esp + 0x44], eax
jne 0x414cb2
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
mov ebp, esi
mov dword [esp + 0x44], ebx
test edx, edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x74], eax
jle 0x41516f
add eax, 2
add esi, 8
mov dword [esp + 0x40], eax
lea eax, [ebx + 2]
mov dword [esp + 0x50], eax
mov dword [esp + 0x58], edx
mov edx, dword [esp + 0x74]
mov edx, dword [edx]
test edx, edx
je 0x41512d
cmp edx, 0xffffffff
jne 0x414e12
mov ebx, dword [esp + 0x44]
xor edx, edx
mov dl, byte [ebx]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [ebp], edx
xor edx, edx
mov dl, byte [eax - 1]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esi - 4], edx
xor edx, edx
mov dl, byte [eax]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esi], edx
xor edx, edx
mov dl, byte [eax + 1]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esi + 4], edx
jmp 0x41512d
mov edx, dword [esp + 0x74]
mov dl, byte [edx]
test dl, dl
mov byte [esp + 0x24], dl
je 0x414ee8
cmp dl, 0xff
jne 0x414e40
mov ebx, dword [esp + 0x44]
xor edx, edx
mov dl, byte [ebx]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [ebp], edx
jmp 0x414ee8
mov edx, dword [esp + 0x44]
mov ebp, dword [ebp]
xor eax, eax
mov ebx, ebp
mov al, byte [edx]
mov dword [esp + 0x5c], ebp
mov edx, dword [edi + eax*4 + 0x400]
mov eax, dword [ecx + 4]
and ebx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx + 0x14]
and ebp, ebx
mov ebx, dword [ecx + 0x24]
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x5c]
and ebp, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x5c], ebp
mov ebp, edx
and ebp, ebx
mov ebx, dword [esp + 0x60]
and eax, 0xff
sub ebp, ebx
imul ebp, eax
sar ebp, 8
mov dword [esp + 0x64], eax
mov eax, dword [ecx + 4]
add ebp, ebx
mov ebx, dword [ecx + 0x14]
and ebp, eax
mov eax, edx
and eax, ebx
mov ebx, dword [esp + 0x78]
sub eax, ebx
imul eax, dword [esp + 0x64]
sar eax, 8
add eax, ebx
mov ebx, dword [ecx + 0x14]
and eax, ebx
mov ebx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [ecx + 0x24]
and edx, eax
sub edx, ebx
imul edx, dword [esp + 0x64]
sar edx, 8
add edx, ebx
and edx, eax
mov eax, dword [esp + 0x50]
or ebp, edx
mov dword [esp + 0x78], ebp
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x78]
mov dword [ebp], edx
mov edx, dword [esp + 0x40]
mov dl, byte [edx - 1]
test dl, dl
mov byte [esp + 0x28], dl
je 0x414fac
cmp dl, 0xff
jne 0x414f14
xor edx, edx
mov dl, byte [eax - 1]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esi - 4], edx
jmp 0x414fac
mov ebp, dword [esi - 4]
xor edx, edx
mov dl, byte [eax - 1]
mov eax, dword [ecx + 4]
mov ebx, ebp
and ebx, eax
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx + 0x14]
and ebp, ebx
mov ebx, dword [ecx + 0x24]
mov dword [esp + 0x78], ebp
mov ebp, dword [esi - 4]
mov eax, dword [esp + 0x28]
and ebp, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x5c], ebp
mov ebp, edx
and eax, 0xff
and ebp, ebx
mov ebx, dword [esp + 0x60]
sub ebp, ebx
mov dword [esp + 0x64], eax
imul ebp, eax
mov eax, dword [ecx + 4]
sar ebp, 8
add ebp, ebx
mov ebx, dword [ecx + 0x14]
and ebp, eax
mov eax, edx
and eax, ebx
mov ebx, dword [esp + 0x78]
sub eax, ebx
imul eax, dword [esp + 0x64]
sar eax, 8
add eax, ebx
mov ebx, dword [ecx + 0x14]
and eax, ebx
mov ebx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [ecx + 0x24]
and edx, eax
sub edx, ebx
imul edx, dword [esp + 0x64]
sar edx, 8
add edx, ebx
and edx, eax
mov eax, dword [esp + 0x50]
or ebp, edx
mov dword [esi - 4], ebp
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov dl, byte [edx]
test dl, dl
mov byte [esp + 0x2c], dl
je 0x415069
cmp dl, 0xff
jne 0x414fd5
xor edx, edx
mov dl, byte [eax]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esi], edx
jmp 0x415069
mov ebp, dword [esi]
xor edx, edx
mov dl, byte [eax]
mov eax, dword [ecx + 4]
mov ebx, ebp
and ebx, eax
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx + 0x14]
and ebp, ebx
mov ebx, dword [ecx + 0x24]
mov dword [esp + 0x78], ebp
mov ebp, dword [esi]
mov eax, dword [esp + 0x2c]
and ebp, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x5c], ebp
mov ebp, edx
and eax, 0xff
and ebp, ebx
mov ebx, dword [esp + 0x60]
sub ebp, ebx
mov dword [esp + 0x64], eax
imul ebp, eax
mov eax, dword [ecx + 4]
sar ebp, 8
add ebp, ebx
mov ebx, dword [ecx + 0x14]
and ebp, eax
mov eax, edx
and eax, ebx
mov ebx, dword [esp + 0x78]
sub eax, ebx
imul eax, dword [esp + 0x64]
sar eax, 8
add eax, ebx
mov ebx, dword [ecx + 0x14]
and eax, ebx
mov ebx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [ecx + 0x24]
and edx, eax
sub edx, ebx
imul edx, dword [esp + 0x64]
sar edx, 8
add edx, ebx
and edx, eax
mov eax, dword [esp + 0x50]
or ebp, edx
mov dword [esi], ebp
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x40]
mov dl, byte [edx + 1]
test dl, dl
mov byte [esp + 0x30], dl
je 0x41512d
cmp dl, 0xff
jne 0x415095
xor edx, edx
mov dl, byte [eax + 1]
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esi + 4], edx
jmp 0x41512d
mov ebp, dword [esi + 4]
xor edx, edx
mov dl, byte [eax + 1]
mov eax, dword [ecx + 4]
mov ebx, ebp
and ebx, eax
mov edx, dword [edi + edx*4 + 0x400]
mov dword [esp + 0x60], ebx
mov ebx, dword [ecx + 0x14]
and ebp, ebx
mov ebx, dword [ecx + 0x24]
mov dword [esp + 0x78], ebp
mov ebp, dword [esi + 4]
mov eax, dword [esp + 0x30]
and ebp, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x5c], ebp
mov ebp, edx
and eax, 0xff
and ebp, ebx
mov ebx, dword [esp + 0x60]
sub ebp, ebx
mov dword [esp + 0x64], eax
imul ebp, eax
mov eax, dword [ecx + 4]
sar ebp, 8
add ebp, ebx
mov ebx, dword [ecx + 0x14]
and ebp, eax
mov eax, edx
and eax, ebx
mov ebx, dword [esp + 0x78]
sub eax, ebx
imul eax, dword [esp + 0x64]
sar eax, 8
add eax, ebx
mov ebx, dword [ecx + 0x14]
and eax, ebx
mov ebx, dword [esp + 0x5c]
or ebp, eax
mov eax, dword [ecx + 0x24]
and edx, eax
sub edx, ebx
imul edx, dword [esp + 0x64]
sar edx, 8
add edx, ebx
and edx, eax
mov eax, dword [esp + 0x50]
or ebp, edx
mov dword [esi + 4], ebp
mov ebp, dword [esp + 0x4c]
mov ebx, dword [esp + 0x44]
mov edx, 4
add ebx, edx
add eax, edx
mov dword [esp + 0x44], ebx
mov ebx, dword [esp + 0x74]
add ebx, edx
add ebp, 0x10
mov dword [esp + 0x74], ebx
mov ebx, dword [esp + 0x40]
add ebx, edx
mov edx, dword [esp + 0x58]
add esi, 0x10
dec edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x40], ebx
mov dword [esp + 0x58], edx
jne 0x414dbd
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
test eax, eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], edx
jle 0x415268
mov esi, dword [esp + 0x44]
mov ebx, edx
sub esi, ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], esi
mov al, byte [edx]
test al, al
je 0x41524d
cmp al, 0xff
jne 0x4151b9
xor eax, eax
mov al, byte [edx + esi]
mov eax, dword [edi + eax*4 + 0x400]
mov dword [ebp], eax
jmp 0x41524d
mov ebp, dword [ebp]
xor ebx, ebx
mov bl, byte [edx + esi]
mov esi, dword [ecx + 4]
and eax, 0xff
mov edx, dword [edi + ebx*4 + 0x400]
mov ebx, ebp
and ebx, esi
mov esi, dword [ecx + 0x14]
mov dword [esp + 0x60], ebx
mov ebx, ebp
and ebx, esi
mov dword [esp + 0x78], ebx
mov ebx, dword [ecx + 0x24]
and ebp, ebx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x5c], ebp
mov ebp, edx
and ebp, ebx
mov ebx, dword [esp + 0x60]
sub ebp, ebx
imul ebp, eax
sar ebp, 8
add ebp, ebx
mov ebx, dword [ecx + 4]
and ebp, ebx
mov ebx, edx
and ebx, esi
mov esi, dword [esp + 0x78]
sub ebx, esi
imul ebx, eax
sar ebx, 8
add ebx, esi
mov esi, dword [ecx + 0x14]
and ebx, esi
mov esi, dword [ecx + 0x24]
or ebp, ebx
mov ebx, dword [esp + 0x5c]
and edx, esi
sub edx, ebx
imul edx, eax
sar edx, 8
add edx, ebx
and edx, esi
mov esi, dword [esp + 0x40]
or ebp, edx
mov dword [esp + 0x74], ebp
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x74]
mov dword [ebp], edx
mov edx, dword [esp + 0x50]
mov eax, dword [esp + 0x44]
add ebp, 4
inc edx
dec eax
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], edx
mov dword [esp + 0x44], eax
jne 0x415197
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
add ebx, esi
lea esi, [eax + edx*4]
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x68]
mov dword [esp + 0x10], ebx
add eax, edx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x70], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x48], esi
dec eax
mov dword [esp + 0x1c], eax
jne 0x414ca2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret