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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x80
mov ebx, ecx
mov ebp, dword [esp + 0xb0]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x14], edx
mov edx, eax
mov esi, dword [edx + 8]
mov edi, dword [edx + 0x20]
mov eax, dword [edx + 0x60]
mov dword [esp + 0x24], esi
mov esi, dword [edx + 0xc]
lea ecx, [edi + edi]
shl ebp, cl
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x28], esi
mov esi, dword [edx + 0x4c]
neg ebp
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], esi
mov esi, dword [edx + 0x64]
add ebp, 0x80
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], esi
mov esi, dword [edx + 0x68]
shl ebp, 0x10
lea ebx, [ebx + ebx]
mov dword [esp + 0x18], ebp
mov ebp, dword [edx + 0x5c]
mov dword [esp + 0x1c], ebp
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x30], esi
mov esi, dword [0x103216c0]
mov dword [esp + 0x4c], esi
mov esi, dword [0x103216c4]
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0xa4]
mov dword [esp + 0x48], edx
add ebx, ebx
lea edi, [ecx + ecx]
add edi, edi
mov ecx, dword [esp + 0xb4]
mov ecx, dword [ecx]
add edi, edi
add edi, edi
imul eax, edi
imul esi, edi
imul edi, dword [esp + 0x30]
imul ebp, ebx
add esi, ebx
imul ebx, dword [esp + 0x20]
lea esi, [esi + ecx + 0x10]
add ebp, dword [edx + 0x6c]
add ebx, dword [edx + 0x70]
mov dword [esp + 0x54], esi
add ebp, eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x5c], ebp
add ebx, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x58], ebx
mov ecx, 0x10
lea edi, [edi + eax]
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], ecx
mov edx, ebp
add ebp, dword [esp + 0x34]
mov eax, ebx
add ebx, dword [esp + 0x30]
mov dword [esp + 0x60], eax
mov edi, 0xfffffff0
mov dword [esp + 0x64], edx
mov dword [esp], edi
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebp
mov dword [esp + 8], esi
mov ebp, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov ecx, ebp
mov edi, edx
sar edi, cl
add edx, dword [esp + 0x1c]
mov ecx, ebx
shl edi, cl
mov ecx, ebp
add dword [esp + 0x4c], edi
mov esi, eax
sar esi, cl
add eax, dword [esp + 0x20]
mov ecx, ebx
shl esi, cl
mov ebp, edi
add dword [esp + 0x50], esi
and ebp, 0xf
mov ecx, esi
mov ebp, dword [ebp*4 + 0x1008b4a0]
and ecx, 0xf
mov ebx, dword [ecx*4 + 0x1008b4a0]
mov dword [esp + 4], ebx
sar edi, 4
sar esi, 4
cmp edi, 0xffffffff
jge 0x10055af3
mov ecx, 0xffffffff
jmp 0x10055afd
mov ecx, dword [esp + 0x24]
cmp ecx, edi
jl 0x10055afd
mov ecx, edi
cmp esi, 0xffffffff
jge 0x10055b09
mov ebx, 0xffffffff
jmp 0x10055b13
mov ebx, dword [esp + 0x28]
cmp ebx, esi
jl 0x10055b13
mov ebx, esi
mov esi, dword [esp + 0xa4]
imul ebx, esi
add ecx, ebx
mov ebx, dword [esp + 0x14]
mov ebx, dword [ebx]
movzx edi, byte [ecx + ebx]
lea esi, [esi + ebx]
movzx ebx, byte [ecx + ebx + 1]
shl ebx, 0x10
or edi, ebx
imul edi, ebp
movzx ebx, byte [esi + ecx]
movzx ecx, byte [esi + ecx + 1]
shr edi, 0x10
shl ecx, 0x10
or ebx, ecx
imul ebp, ebx
mov ecx, dword [esp + 4]
mov ebx, dword [esp + 8]
and ebp, 0xfff0000
or edi, ebp
imul ecx, edi
mov ebp, dword [esp]
add ecx, dword [esp + 0x18]
shr ecx, 0x18
mov byte [ebp + ebx], cl
add ebp, 1
mov dword [esp], ebp
test ebp, ebp
jl 0x10055a99
mov ecx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 8]
add ecx, 0xffffffff
add esi, dword [esp + 0xa4]
test ecx, ecx
jg 0x10055a6d
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
mov esi, dword [esp + 0xa0]
mov ebx, dword [esp + 0xb4]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x2c], eax
lea ebp, [eax + eax]
add ebp, ebp
add ebp, ebp
lea ecx, [esi + esi]
add ecx, ecx
add ecx, ecx
imul ecx, dword [esp + 0xa8]
add ebp, ecx
mov ecx, dword [ebx + 4]
mov ebx, dword [ebx + 8]
lea ecx, [ebp + ecx + 8]
mov dword [esp + 0x40], ecx
lea ebx, [ebp + ebx + 8]
lea ebp, [eax + eax]
mov dword [esp + 0x3c], ebx
add ebp, ebp
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], ecx
add ebp, ebp
add ebp, ebp
mov ecx, dword [esp + 0x44]
add ebp, ebp
lea eax, [esi + esi]
mov esi, dword [esp + 0x1c]
add eax, eax
add eax, eax
add eax, eax
add eax, eax
imul edi, eax
imul esi, ebp
add esi, dword [edx + 0x74]
add esi, edi
mov edi, dword [esp + 0x20]
imul ebp, edi
add ebp, dword [edx + 0x78]
mov edx, dword [esp + 0x30]
imul eax, edx
add edx, edx
mov dword [esp + 0x74], esi
add ebp, eax
mov dword [esp + 0x70], ebp
mov eax, 8
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
lea ecx, [eax + ecx + 2]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], ecx
mov ecx, ebx
add eax, eax
add eax, eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
add edx, edx
mov dword [esp + 0x30], edx
add eax, eax
add eax, eax
mov edx, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
add edi, edi
add edi, edi
add eax, 0x80000000
adc eax, 0x80000000
mov dword [esp + 0x20], edi
sar eax, 1
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
add eax, 0x80000000
adc eax, 0x80000000
sar eax, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x48], edx
mov ebx, esi
add esi, dword [esp + 0x34]
mov edi, ebp
add ebp, dword [esp + 0x30]
mov dword [esp + 0x78], edi
mov eax, 0xfffffff8
mov dword [esp + 0x7c], ebx
mov dword [esp + 4], edi
mov dword [esp], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], ecx
mov ebp, dword [esp + 0x44]
mov esi, dword [esp]
mov edx, dword [esp + 0x10]
mov edi, dword [esp + 4]
mov ecx, ebp
mov ebx, esi
sar ebx, cl
add esi, dword [esp + 0x1c]
mov ecx, edx
shl ebx, cl
mov dword [esp], esi
mov ecx, ebp
mov esi, edi
sar esi, cl
add edi, dword [esp + 0x20]
mov ecx, edx
shl esi, cl
mov dword [esp + 4], edi
mov edx, ebx
and edx, 0xf
sar ebx, 4
mov ebp, dword [edx*4 + 0x1008b4a0]
mov edx, esi
and edx, 0xf
mov edx, dword [edx*4 + 0x1008b4a0]
sar esi, 4
cmp ebx, 0xffffffff
mov dword [esp + 8], edx
jge 0x10055d39
mov ebx, 0xffffffff
jmp 0x10055d43
mov edx, dword [esp + 0x24]
cmp edx, ebx
jge 0x10055d43
mov ebx, edx
cmp esi, 0xffffffff
jge 0x10055d4f
mov edx, 0xffffffff
jmp 0x10055d59
mov edx, dword [esp + 0x28]
cmp edx, esi
jl 0x10055d59
mov edx, esi
mov esi, dword [esp + 0xa8]
imul edx, esi
add ebx, edx
mov edi, dword [esp + 0x14]
mov ecx, dword [edi + 4]
movzx edx, byte [ebx + ecx]
lea esi, [esi + ecx]
movzx ecx, byte [ebx + ecx + 1]
shl ecx, 0x10
or edx, ecx
imul edx, ebp
movzx ecx, byte [esi + ebx]
movzx esi, byte [esi + ebx + 1]
shr edx, 0x10
shl esi, 0x10
or ecx, esi
imul ecx, ebp
mov esi, dword [esp + 0x40]
and ecx, 0xfff0000
or edx, ecx
mov ecx, dword [esp + 8]
imul edx, ecx
add edx, dword [esp + 0x18]
shr edx, 0x18
mov byte [esi + eax], dl
mov edx, dword [esp + 0xa8]
mov edi, dword [edi + 8]
movzx esi, byte [edi + ebx]
lea edx, [edx + edi]
movzx edi, byte [edi + ebx + 1]
shl edi, 0x10
or esi, edi
imul esi, ebp
movzx edi, byte [edx + ebx]
movzx ebx, byte [edx + ebx + 1]
shr esi, 0x10
shl ebx, 0x10
or edi, ebx
imul ebp, edi
and ebp, 0xfff0000
or esi, ebp
imul ecx, esi
mov ebp, dword [esp + 0x3c]
add ecx, dword [esp + 0x18]
shr ecx, 0x18
mov byte [ebp + eax], cl
add eax, 1
test eax, eax
jl 0x10055cd9
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
add edx, 0xffffffff
mov eax, dword [esp + 0xa8]
add dword [esp + 0x40], eax
add ecx, eax
test edx, edx
jg 0x10055ca9
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa0]
mov edx, dword [esp + 0xac]
shl eax, 8
add eax, 0x78
shl eax, 4
add eax, eax
add eax, eax
add eax, eax
add eax, eax
neg eax
add eax, dword [esp + 0x4c]
shl ebx, 8
add ebx, 0x78
shl ebx, 4
add ebx, ebx
add ebx, ebx
add ebx, ebx
add ebx, ebx
neg ebx
mov ecx, edx
add ebx, dword [esp + 0x50]
neg ecx
add ecx, 0xa
neg edx
add edx, 0xb
test eax, eax
jle 0x10055ead
mov ebp, 1
shl ebp, cl
mov ecx, edx
add eax, ebp
sar eax, cl
add ebp, ebx
test ebx, ebx
jle 0x10055ea4
mov ecx, edx
sar ebp, cl
mov edx, ebp
add esp, 0x80
pop ebx
pop ebp
pop esi
pop edi
ret
add ebp, 0xffffffff
mov ecx, edx
sar ebp, cl
jmp 0x10055e97
mov ebp, 1
shl ebp, cl
mov ecx, edx
lea eax, [eax + ebp - 1]
sar eax, cl
jmp 0x10055e8d