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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x54
mov esi, dword [esp + 0x80]
mov dword [esp + 0x4c], 0xff
mov eax, 0xffffffff
cmp esi, 0x200
jb 0x7d1671
lea eax, [esp + 0x50]
lea ecx, [esp + 0x4c]
push 0
push dword [esp + 0x78]
push dword [esp + 0x78]
push eax
push ecx
push dword [esp + 0x90]
call fcn.007d0360
add esp, 0x18
cmp eax, 0xffffff88
ja 0x7d1671
mov dword [esp], eax
mov ebx, dword [esp + 0x50]
mov eax, 0xffffffd4
cmp ebx, dword [esp + 0x78]
ja 0x7d1671
mov edi, 1
mov ecx, ebx
shl edi, cl
mov ebp, 1
mov eax, edi
sar eax, 0x1f
shld eax, edi, 2
xor edx, edx
shld edx, ebp, cl
shl edi, 2
shl ebp, cl
test bl, 0x20
cmovne edx, ebp
mov ecx, 0
cmovne ebp, ecx
add ebp, edi
adc edx, eax
mov edi, dword [esp + 0x4c]
lea eax, [edi*2 + 2]
add eax, ebp
adc edx, 0
add eax, 0x13
adc edx, 0
and eax, 0xfffffffc
add eax, 0x204
adc edx, 0
cmp esi, eax
mov eax, 0xffffffd4
sbb ecx, edx
jb 0x7d1671
mov eax, 4
mov dword [esp + 0x1c], edi
mov ecx, ebx
shl eax, cl
mov edx, dword [esp + 0x7c]
lea ebp, [edx + 0x200]
lea edi, [eax + ebp]
add edi, 4
sub esi, eax
add esi, 0xfffffdfc
mov ecx, ebp
push esi
push edi
push ebx
push dword [esp + 0x28]
call fcn.007d0a30
add esp, 0x10
cmp eax, 0xffffff88
ja 0x7d1671
mov dword [esp + 0x1c], ebp
mov eax, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov ebx, dword [esp + 0x74]
mov esi, ebx
mov ecx, dword [esp]
sub esi, ecx
mov ebp, dword [esp + 0x70]
lea edx, [ecx + ebp]
mov ecx, dword [esp + 0x7c]
cmp word [ecx + 0x202], 0
lea ecx, [edi + eax]
mov dword [esp + 0x38], ecx
lea eax, [edi + eax - 3]
mov dword [esp + 0x48], eax
je 0x7d0ff3
test esi, esi
je 0x7d1220
mov dword [esp + 0x10], edx
lea eax, [edx + 4]
mov dword [esp + 0x14], eax
cmp esi, 4
jb 0x7d122a
lea eax, [ebx + ebp]
add eax, 0xfffffffc
mov dword [esp + 0xc], eax
mov eax, dword [ebp + ebx - 4]
mov dword [esp + 4], eax
mov ecx, 0xffffffff
cmp eax, 0x1000000
jb 0x7d14d8
shr eax, 0x18
bsr eax, eax
not eax
add eax, 9
mov dword [esp + 8], eax
mov ecx, esi
cmp esi, 0xffffff88
jbe 0x7d1274
jmp 0x7d14d8
lea ecx, [esp + 4]
push esi
call fcn.007d18c0
add esp, 4
cmp eax, 0xffffff88
ja 0x7d1671
lea ecx, [esp + 0x2c]
lea edi, [esp + 4]
mov edx, edi
mov esi, dword [esp + 0x1c]
push esi
call fcn.007d1980
add esp, 4
lea ecx, [esp + 0x24]
mov edx, edi
push esi
call fcn.007d1980
add esp, 4
mov eax, dword [esp + 4]
mov dword [esp + 0x18], eax
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
cmp edx, 0x20
ja 0x7d17cf
mov eax, dword [esp + 0x14]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x68]
lea esi, [ecx + 2]
jmp 0x7d10f8
mov ecx, edx
shr ecx, 3
sub eax, ecx
and edx, 7
mov ebx, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
movzx ecx, byte [eax + edi*4 + 3]
mov dword [esp + 0x18], ecx
add edx, ecx
mov ecx, edx
neg cl
mov ebp, ebx
shr ebp, cl
mov ecx, dword [esp + 0x18]
and ebp, dword [ecx*4 + 0xfb3c88]
movzx ecx, word [eax + edi*4]
movzx eax, byte [eax + edi*4 + 2]
add ebp, ecx
mov ecx, dword [esp]
mov byte [ecx], al
mov eax, dword [esp + 0x34]
movzx edi, byte [eax + esi*4 + 3]
add edx, edi
mov ecx, edx
neg cl
mov dword [esp + 0x18], ebx
shr ebx, cl
and ebx, dword [edi*4 + 0xfb3c88]
movzx ecx, word [eax + esi*4]
add ebx, ecx
movzx ecx, byte [eax + esi*4 + 2]
mov esi, dword [esp]
mov eax, dword [esp + 0x1c]
mov byte [esi + 1], cl
add esi, 4
cmp edx, 0x20
ja 0x7d17fc
mov dword [esp], esi
add esi, 0xfffffffe
cmp eax, dword [esp + 0x3c]
jae 0x7d1145
mov dword [esp + 0x40], esi
mov esi, eax
mov ecx, dword [esp + 0x44]
sub esi, ecx
je 0x7d1624
mov ecx, edx
shr ecx, 3
mov edi, eax
sub edi, ecx
cmp edi, dword [esp + 0x44]
mov edi, edx
mov edx, 0
setb dl
mov dword [esp + 0x1c], edx
mov edx, edi
cmovb ecx, esi
lea esi, [ecx*8]
sub edx, esi
mov esi, dword [esp + 0x40]
jmp 0x7d1155
mov ecx, edx
shr ecx, 3
and edx, 7
mov dword [esp + 0x1c], 0
sub eax, ecx
mov edi, dword [eax]
cmp esi, dword [esp + 0x48]
jae 0x7d162c
cmp dword [esp + 0x1c], 0
jne 0x7d162c
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + ebp*4]
mov dword [esp + 0x40], ecx
mov ch, byte [eax + ebp*4 + 2]
movzx eax, byte [eax + ebp*4 + 3]
add edx, eax
mov cl, dl
neg cl
mov esi, edi
shr edi, cl
and edi, dword [eax*4 + 0xfb3c88]
mov eax, dword [esp]
mov byte [eax - 2], ch
mov eax, dword [esp + 0x34]
movzx ebp, byte [eax + ebx*4 + 3]
add edx, ebp
mov ecx, edx
neg cl
mov dword [esp + 0x18], esi
shr esi, cl
add edi, dword [esp + 0x40]
and esi, dword [ebp*4 + 0xfb3c88]
movzx ecx, word [eax + ebx*4]
add esi, ecx
movzx ecx, byte [eax + ebx*4 + 2]
mov eax, dword [esp]
mov byte [eax - 1], cl
cmp edx, 0x21
jae 0x7d17db
mov eax, dword [esp + 0x1c]
cmp eax, dword [esp + 0x3c]
jae 0x7d1079
mov ecx, eax
mov ebp, dword [esp + 0x44]
sub ecx, ebp
je 0x7d163e
mov ebx, edx
shr ebx, 3
mov dword [esp + 0x18], eax
sub dword [esp + 0x18], ebx
cmp dword [esp + 0x18], ebp
cmovb ebx, ecx
sub eax, ebx
shl ebx, 3
sub edx, ebx
mov ebx, dword [eax]
cmp dword [esp + 0x18], ebp
jae 0x7d1085
jmp 0x7d1642
mov eax, 0xffffffb8
jmp 0x7d1671
mov dword [esp + 0xc], edx
movzx eax, byte [edx]
mov dword [esp + 4], eax
cmp esi, 2
je 0x7d1248
cmp esi, 3
jne 0x7d1255
movzx ecx, byte [edx + 2]
shl ecx, 0x10
or eax, ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
add ecx, eax
mov dword [esp + 4], ecx
movzx eax, byte [ebp + ebx - 1]
test eax, eax
je 0x7d14a2
bsr eax, eax
xor eax, 0x1f
shl esi, 3
sub eax, esi
add eax, 9
mov dword [esp + 8], eax
lea ecx, [esp + 0x2c]
lea edi, [esp + 4]
mov edx, edi
mov esi, dword [esp + 0x1c]
push esi
call fcn.007d1980
add esp, 4
lea ecx, [esp + 0x24]
mov edx, edi
push esi
call fcn.007d1980
add esp, 4
mov edx, dword [esp + 8]
mov ebp, dword [esp + 0x2c]
mov ebx, dword [esp + 0x24]
cmp edx, 0x20
ja 0x7d17d5
mov eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x68]
lea edi, [eax + 2]
jmp 0x7d135b
mov eax, edx
shr eax, 3
sub ebp, eax
and edx, 7
mov dword [esp + 8], edx
mov ebx, dword [ebp]
mov dword [esp + 4], ebx
mov dword [esp + 0x3c], ebp
mov eax, dword [esp + 0x18]
movzx ecx, word [eax + esi*4]
mov dword [esp + 0x20], ecx
mov ch, byte [eax + esi*4 + 2]
movzx eax, byte [eax + esi*4 + 3]
mov ebp, ebx
mov cl, dl
shl ebp, cl
add edx, eax
mov cl, al
neg cl
shr ebp, cl
mov eax, dword [esp]
mov byte [eax], ch
mov esi, dword [esp + 0x1c]
movzx eax, byte [esi + edi*4 + 3]
mov ecx, edx
add edx, eax
shl ebx, cl
neg al
mov ecx, eax
shr ebx, cl
mov ecx, dword [esp + 0x3c]
add ebp, dword [esp + 0x20]
movzx eax, word [esi + edi*4]
add ebx, eax
movzx eax, byte [esi + edi*4 + 2]
mov edi, dword [esp]
mov dword [esp + 8], edx
mov byte [edi + 1], al
add edi, 4
cmp edx, 0x20
ja 0x7d1831
lea eax, [edi - 2]
mov dword [esp + 0x20], eax
cmp ecx, dword [esp + 0x40]
mov dword [esp], edi
jae 0x7d13a4
mov esi, ecx
mov eax, dword [esp + 0x34]
sub esi, eax
je 0x7d14b0
mov eax, edx
shr eax, 3
mov edi, ecx
sub edi, eax
cmp edi, dword [esp + 0x34]
mov edi, ebx
mov ebx, 0
setb bl
mov dword [esp + 0x44], ebx
mov ebx, edi
cmovb eax, esi
lea esi, [eax*8]
sub edx, esi
jmp 0x7d13b4
mov eax, edx
shr eax, 3
and edx, 7
mov dword [esp + 0x44], 0
sub ecx, eax
mov dword [esp + 8], edx
mov dword [esp + 0x3c], ecx
mov edi, dword [ecx]
mov dword [esp + 4], edi
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x48]
jae 0x7d14ac
cmp dword [esp + 0x44], 0
jne 0x7d14ac
mov ecx, dword [esp + 0x18]
movzx eax, word [ecx + ebp*4]
mov dword [esp + 0x20], eax
movzx eax, byte [ecx + ebp*4 + 3]
mov ecx, edx
add edx, eax
mov esi, edi
shl esi, cl
neg al
mov ecx, eax
shr esi, cl
mov eax, dword [esp + 0x18]
movzx eax, byte [eax + ebp*4 + 2]
add esi, dword [esp + 0x20]
mov ecx, dword [esp]
mov byte [ecx - 2], al
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + ebx*4 + 3]
mov ecx, edx
add edx, eax
mov ebp, dword [esp + 0x1c]
movzx ebp, word [ebp + ebx*4]
mov dword [esp + 0x20], ebp
shl edi, cl
neg al
mov ecx, eax
shr edi, cl
add edi, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
movzx eax, byte [eax + ebx*4 + 2]
mov ecx, dword [esp]
mov byte [ecx - 1], al
cmp edx, 0x21
jae 0x7d181c
mov ebp, dword [esp + 0x3c]
cmp ebp, dword [esp + 0x40]
jae 0x7d12dc
mov ecx, ebp
mov eax, dword [esp + 0x34]
sub ecx, eax
je 0x7d1491
mov ebx, edx
shr ebx, 3
mov eax, ebp
sub eax, ebx
cmp eax, dword [esp + 0x34]
cmovb ebx, ecx
sub ebp, ebx
shl ebx, 3
sub edx, ebx
mov dword [esp + 8], edx
mov ebx, dword [ebp]
mov dword [esp + 4], ebx
cmp eax, dword [esp + 0x34]
jae 0x7d12f1
mov dword [esp + 0xc], ebp
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edi
mov ebp, dword [esp]
jmp 0x7d14c0
mov eax, 0xffffffec
jmp 0x7d1671
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
mov ebp, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
add eax, 0xfffffffe
mov ecx, 0xffffffba
mov dword [esp + 0x38], eax
cmp ebp, eax
mov eax, dword [esp + 0x68]
jbe 0x7d14df
mov eax, ecx
jmp 0x7d1671
mov esi, ebp
sub esi, eax
inc ebp
jmp 0x7d1511
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 4], eax
add esi, 2
lea eax, [ebp + 2]
inc ebp
cmp ebp, dword [esp + 0x38]
mov ebp, eax
ja 0x7d166c
mov edi, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 4]
mov ecx, edx
shl eax, cl
movzx ecx, byte [ebx + edi*4 + 3]
add edx, ecx
neg cl
shr eax, cl
movzx ecx, word [ebx + edi*4]
movzx ebx, byte [ebx + edi*4 + 2]
add eax, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x2c], eax
mov byte [ebp - 1], bl
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x7d1887
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x7d1586
mov edi, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
je 0x7d159a
mov ebx, edx
shr ebx, 3
mov dword [esp + 0x20], ebp
mov ebp, ecx
sub ebp, ebx
cmp ebp, edi
mov ebp, dword [esp + 0x20]
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
jmp 0x7d1594
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov eax, dword [ecx]
mov dword [esp + 4], eax
cmp ebp, dword [esp + 0x38]
ja 0x7d166c
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
mov eax, dword [esp + 4]
mov ecx, edx
shl eax, cl
movzx ecx, byte [ebx + edi*4 + 3]
add edx, ecx
neg cl
shr eax, cl
movzx ecx, word [ebx + edi*4]
movzx ebx, byte [ebx + edi*4 + 2]
add eax, ecx
mov dword [esp + 8], edx
mov dword [esp + 0x24], eax
mov byte [ebp], bl
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x7d189c
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x7d14e6
mov edi, dword [esp + 0x10]
mov eax, ecx
sub eax, edi
je 0x7d14fe
mov ebx, edx
shr ebx, 3
mov dword [esp + 0x20], ebp
mov ebp, ecx
sub ebp, ebx
cmp ebp, edi
mov ebp, dword [esp + 0x20]
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
jmp 0x7d14f4
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 4], edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
jmp 0x7d1659
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ebx
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
mov esi, dword [esp]
mov eax, dword [esp + 0x38]
add eax, 0xfffffffe
mov dword [esp + 0x38], eax
cmp esi, eax
mov eax, dword [esp + 0x68]
jbe 0x7d1679
mov eax, 0xffffffba
add esp, 0x54
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, esi
sub ecx, eax
inc esi
jmp 0x7d16aa
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov ecx, dword [esp]
add ecx, 2
lea eax, [esi + 2]
inc esi
cmp esi, dword [esp + 0x38]
mov esi, eax
ja 0x7d166c
mov dword [esp], ecx
mov ecx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x30]
mov edi, esi
movzx esi, word [ebx + ecx*4]
movzx eax, byte [ebx + ecx*4 + 2]
movzx ebp, byte [ebx + ecx*4 + 3]
mov ebx, dword [esp + 4]
add edx, ebp
mov ecx, edx
neg cl
shr ebx, cl
and ebx, dword [ebp*4 + 0xfb3c88]
add ebx, esi
mov dword [esp + 8], edx
mov dword [esp + 0x2c], ebx
mov byte [edi - 1], al
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x7d184d
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x7d1729
mov esi, dword [esp + 0x10]
mov eax, ecx
sub eax, esi
je 0x7d1725
mov ebx, edx
shr ebx, 3
mov ebp, ecx
sub ebp, ebx
cmp ebp, esi
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov esi, edi
jmp 0x7d173f
mov esi, edi
mov eax, edx
shr eax, 3
sub ecx, eax
mov dword [esp + 0xc], ecx
and edx, 7
mov eax, dword [ecx]
mov dword [esp + 4], eax
cmp esi, dword [esp + 0x38]
ja 0x7d166c
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
movzx esi, word [ebx + ecx*4]
movzx eax, byte [ebx + ecx*4 + 2]
movzx ebp, byte [ebx + ecx*4 + 3]
mov ebx, dword [esp + 4]
add edx, ebp
mov ecx, edx
neg cl
shr ebx, cl
and ebx, dword [ebp*4 + 0xfb3c88]
add ebx, esi
mov esi, edi
mov dword [esp + 8], edx
mov dword [esp + 0x24], ebx
mov byte [edi], al
mov edx, dword [esp + 8]
cmp edx, 0x20
ja 0x7d1862
mov ecx, dword [esp + 0xc]
cmp ecx, dword [esp + 0x14]
jae 0x7d1680
mov esi, dword [esp + 0x10]
mov eax, ecx
sub eax, esi
je 0x7d17c8
mov ebx, edx
shr ebx, 3
mov ebp, ecx
sub ebp, ebx
cmp ebp, esi
cmovb ebx, eax
sub ecx, ebx
mov dword [esp + 0xc], ecx
shl ebx, 3
sub edx, ebx
mov dword [esp + 8], edx
mov eax, dword [ecx]
mov dword [esp + 4], eax
mov esi, edi
jmp 0x7d1698
mov esi, dword [esp + 0x68]
jmp 0x7d17ff
mov eax, dword [esp + 0x68]
jmp 0x7d1836
mov dword [esp + 8], edx
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x2c], edi
mov dword [esp + 0x24], esi
mov dword [esp + 0xc], 0xfb3d08
jmp 0x7d1656
add esi, 0xfffffffe
mov eax, dword [esp + 0x18]
mov dword [esp + 4], eax
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], 0xfb3d08
jmp 0x7d1659
mov dword [esp + 0x2c], esi
mov dword [esp + 0x24], edi
mov dword [esp + 0xc], 0xfb3d08
jmp 0x7d149d
add edi, 0xfffffffe
mov eax, edi
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0xc], 0xfb3d08
mov ebp, eax
jmp 0x7d14c0
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*4]
add eax, 2
mov ecx, 2
jmp 0x7d1878
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
add eax, 2
inc esi
mov edi, esi
mov ecx, 3
movzx eax, byte [eax]
mov byte [edi], al
mov eax, ecx
add eax, dword [esp]
jmp 0x7d1671
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
lea eax, [ecx + eax*4]
add eax, 2
mov ecx, 2
jmp 0x7d18b0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + eax*4]
add eax, 2
inc ebp
mov ecx, 3
movzx eax, byte [eax]
mov byte [ebp], al
add ecx, esi
jmp 0x7d14d8