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

Disassembly:
push 0xffffffffffffffff
push 0x4e5ae531
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4e5d94e0]
xor eax, esp
push eax
lea eax, [esp + 0x7c]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x9c]
mov dword [esp + 0x54], 0
mov esi, dword [edx + 8]
mov edx, dword [edx + 0xc]
test esi, esi
je 0x4e5456ab
lea eax, [esi - 1]
lea eax, [edx + eax*4]
lea esp, [esp]
cmp dword [eax], 0
jne 0x4e545710
sub eax, 4
dec esi
jne 0x4e5456a0
xor edi, edi
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x44], edi
mov esi, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
test esi, esi
je 0x4e5456d3
lea eax, [esi - 1]
lea eax, [ecx + eax*4]
cmp dword [eax], 0
jne 0x4e545729
sub eax, 4
dec esi
jne 0x4e5456c8
xor ecx, ecx
cmp ecx, edi
lea eax, [esp + 0x44]
lea edx, [esp + 0x40]
cmovae eax, edx
mov dword [esp + 0x40], ecx
mov eax, dword [eax]
mov dword [esp + 0x50], eax
test eax, eax
jne 0x4e545742
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x8c]
push eax
call fcn.4e53cd70
mov eax, dword [esp + 0x8c]
jmp 0x4e546434
test esi, esi
je 0x4e5456ab
lea ecx, [edx - 4]
lea ecx, [ecx + esi*4]
call fcn.4e52ae90
lea edi, [esi - 1]
shl edi, 5
add edi, eax
jmp 0x4e5456ad
test esi, esi
je 0x4e5456d3
lea ecx, [ecx + esi*4]
add ecx, 0xfffffffc
call fcn.4e52ae90
lea ecx, [esi - 1]
shl ecx, 5
add ecx, eax
jmp 0x4e5456d5
cmp eax, 0x2e
ja 0x4e54574e
mov esi, 1
jmp 0x4e54575c
mov ecx, 0x104
cmp ecx, eax
sbb esi, esi
neg esi
add esi, 2
mov ecx, esi
mov ebx, 1
shl ebx, cl
mov dword [esp + 0x24], esi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov edi, ebx
shl edi, cl
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x64], 0
push edi
mov dword [esp + 0x24], edi
call fcn.4e546f60
mov dword [esp + 0x84], 1
mov ecx, dword [esp + 0x5c]
push dword [esp + 0x90]
lea ecx, [ecx + 0x14]
call fcn.4e53d0d0
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x98]
lea ebx, [ebx + ebx*4]
shl ebx, 2
push ebp
lea ecx, [ebx + ecx]
mov dword [esp + 0x30], ebx
call fcn.4e53d0d0
mov ecx, dword [esp + 0x18]
cmp esi, 1
mov eax, dword [ecx]
mov esi, dword [esp + 0x5c]
jne 0x4e5457fb
push ebp
push dword [esp + 0x94]
call dword [eax + 0xc]
push eax
lea ecx, [esi + 0x3c]
call fcn.4e53d0d0
jmp 0x4e545ddb
push dword [esp + 0x90]
call dword [eax + 0x18]
push eax
lea ecx, [esi + 0x28]
call fcn.4e53d0d0
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
lea ecx, [eax + eax*4]
shl ecx, 3
mov dword [esp + 0x44], ecx
add esi, ecx
mov ecx, dword [esp + 0x18]
push ebp
mov eax, dword [ecx]
call dword [eax + 0x18]
push eax
mov ecx, esi
call fcn.4e53d0d0
mov edx, dword [esp + 0x1c]
cmp edx, 3
jbe 0x4e54588b
lea ebx, [edx - 4]
shr ebx, 1
mov ebp, 0x3c
inc ebx
jmp 0x4e545850
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x18]
lea esi, [eax + 0x28]
lea edx, [eax - 0x28]
add edx, ebp
lea edi, [eax + ebp]
mov eax, dword [ecx]
push esi
push edx
call dword [eax + 0xc]
push eax
mov ecx, edi
call fcn.4e53d0d0
add ebp, 0x28
dec ebx
jne 0x4e545850
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x98]
mov edi, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, 1
mov dword [esp + 0x38], eax
cmp edx, eax
jbe 0x4e545a5b
lea ecx, [ebx + 0x14]
mov ebx, dword [esp + 0x1c]
mov edx, 0x14
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
lea esi, [eax + ebx]
mov dword [esp + 0x28], esi
cmp esi, edi
jae 0x4e545a33
mov edi, ecx
mov dword [esp + 0x30], ecx
mov ecx, edx
mov dword [esp + 0x34], edx
jmp 0x4e5458d0
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x18]
add ecx, eax
lea ebx, [eax + edi]
mov eax, dword [edx]
push ebp
push ecx
mov ecx, edx
mov dword [esp + 0x54], ebx
call dword [eax + 0xc]
mov ebp, eax
cmp ebx, ebp
je 0x4e5459f2
mov edx, dword [ebp + 8]
cmp dword [ebx + 8], edx
jne 0x4e54590d
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x4e5459d1
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x4e54592b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x4e54592b
sub eax, 4
dec edx
jne 0x4e545920
cmp edx, 8
ja 0x4e545939
mov esi, dword [edx*4 + 0x4e5bc774]
jmp 0x4e545976
cmp edx, 0x10
ja 0x4e545945
mov esi, 0x10
jmp 0x4e545976
cmp edx, 0x20
ja 0x4e545951
mov esi, 0x20
jmp 0x4e545976
cmp edx, 0x40
ja 0x4e54595d
mov esi, 0x40
jmp 0x4e545976
lea eax, [edx - 1]
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], eax
call fcn.4e52ae90
mov esi, 1
mov ecx, eax
shl esi, cl
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
lea edi, [ebx + 4]
mov dword [esp + 0x48], esi
mov dword [esp + 0x58], ecx
cmp ecx, esi
je 0x4e5459c3
push ecx
push eax
mov ecx, edi
call fcn.4e51eb20
mov ebx, dword [esp + 0x48]
mov ecx, ebx
call fcn.4e540350
test ebx, ebx
jne 0x4e5459a7
xor eax, eax
jmp 0x4e5459bf
lea ecx, [ebx*4]
cmp ecx, 0x10
jb 0x4e5459ba
call fcn.4e52b7d0
jmp 0x4e5459bf
call fcn.4e52b860
mov ebx, dword [esp + 0x4c]
mov dword [edi + 4], esi
mov esi, dword [esp + 0x28]
mov dword [edi + 8], eax
mov edi, dword [esp + 0x30]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp edx, ecx
je 0x4e5459ec
shl eax, 2
push eax
push ecx
push edx
call fcn.4e589da0
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x10], eax
mov ecx, dword [esp + 0x34]
add esi, dword [esp + 0x1c]
add edi, dword [esp + 0x2c]
add ecx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x98]
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ecx
cmp esi, dword [esp + 0x20]
jb 0x4e5458d0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x98]
add eax, 2
add ecx, 0x28
add edx, 0x28
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
cmp eax, ebx
jb 0x4e5458b0
mov edx, dword [esp + 0x1c]
lea esi, [edx + edx*2]
mov dword [esp + 0x98], esi
cmp esi, edi
jae 0x4e545be6
lea ecx, [edx + edx]
mov eax, esi
sub eax, ecx
lea edi, [esi + esi*4]
shl edi, 2
lea ecx, [eax + eax*4]
shl ecx, 2
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ecx
jmp 0x4e545a90
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x18]
add edx, eax
add ecx, eax
lea ebx, [eax + edi]
mov eax, dword [ebp]
push edx
push ecx
mov ecx, ebp
mov dword [esp + 0x50], ebx
call dword [eax + 0xc]
mov ebp, eax
cmp ebx, ebp
je 0x4e545bb6
mov edx, dword [ebp + 8]
cmp dword [ebx + 8], edx
jne 0x4e545ad4
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x4e545b95
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x4e545aec
lea eax, [eax + edx*4]
add eax, 0xfffffffc
cmp dword [eax], 0
jne 0x4e545aec
sub eax, 4
dec edx
jne 0x4e545ae1
cmp edx, 8
ja 0x4e545afa
mov esi, dword [edx*4 + 0x4e5bc774]
jmp 0x4e545b37
cmp edx, 0x10
ja 0x4e545b06
mov esi, 0x10
jmp 0x4e545b37
cmp edx, 0x20
ja 0x4e545b12
mov esi, 0x20
jmp 0x4e545b37
cmp edx, 0x40
ja 0x4e545b1e
mov esi, 0x40
jmp 0x4e545b37
lea eax, [edx - 1]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], eax
call fcn.4e52ae90
mov esi, 1
mov ecx, eax
shl esi, cl
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
lea edi, [ebx + 4]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], ecx
cmp ecx, esi
je 0x4e545b84
push ecx
push eax
mov ecx, edi
call fcn.4e51eb20
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.4e540350
test ebx, ebx
jne 0x4e545b68
xor eax, eax
jmp 0x4e545b80
lea ecx, [ebx*4]
cmp ecx, 0x10
jb 0x4e545b7b
call fcn.4e52b7d0
jmp 0x4e545b80
call fcn.4e52b860
mov ebx, dword [esp + 0x48]
mov dword [edi + 4], esi
mov esi, dword [esp + 0x98]
mov dword [edi + 8], eax
mov edi, dword [esp + 0x40]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 0xc]
mov eax, dword [ebx + 8]
cmp edx, ecx
je 0x4e545bb0
shl eax, 2
push eax
push ecx
push edx
call fcn.4e589da0
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [ebx + 0x10], eax
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x3c]
add edi, dword [esp + 0x44]
add ecx, dword [esp + 0x44]
lea esi, [esi + edx*2]
mov dword [esp + 0x98], esi
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], ecx
cmp esi, dword [esp + 0x20]
jb 0x4e545a90
mov edi, dword [esp + 0x20]
mov ebx, edx
mov dword [esp + 0x40], ebx
cmp edx, edi
jae 0x4e545ddb
lea esi, [edx + edx]
lea edx, [edx + edx*4]
lea eax, [esi + esi*4]
shl eax, 2
add edx, 0xa
mov dword [esp + 0x30], eax
shl edx, 2
mov eax, 2
sub eax, dword [esp + 0x1c]
mov ecx, esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x2c], eax
add eax, ecx
cmp eax, ecx
jae 0x4e545dbb
mov esi, ecx
sub esi, eax
dec esi
shr esi, 1
mov edi, edx
inc esi
mov dword [esp + 0x98], edi
mov dword [esp + 0x44], esi
jmp 0x4e545c50
mov ebp, dword [esp + 0x5c]
mov edx, dword [esp + 0x18]
push dword [esp + 0x90]
mov eax, dword [edx]
add ebp, edi
lea ecx, [ebp - 0x14]
push ecx
mov ecx, edx
call dword [eax + 0xc]
mov ebx, eax
mov dword [esp + 0x48], ebx
cmp ebp, ebx
je 0x4e545d92
mov edx, dword [ebx + 8]
cmp dword [ebp + 8], edx
jne 0x4e545c93
mov ecx, dword [ebx + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x4e545d71
mov eax, dword [ebx + 0xc]
test edx, edx
je 0x4e545cab
lea eax, [eax + edx*4]
add eax, 0xfffffffc
cmp dword [eax], 0
jne 0x4e545cab
sub eax, 4
dec edx
jne 0x4e545ca0
cmp edx, 8
ja 0x4e545cb9
mov esi, dword [edx*4 + 0x4e5bc774]
jmp 0x4e545d15
cmp edx, 0x10
ja 0x4e545cc5
mov esi, 0x10
jmp 0x4e545d15
cmp edx, 0x20
ja 0x4e545cd1
mov esi, 0x20
jmp 0x4e545d15
cmp edx, 0x40
ja 0x4e545cdd
mov esi, 0x40
jmp 0x4e545d15
lea edi, [edx - 1]
test edi, edi
jne 0x4e545ce8
xor edx, edx
jmp 0x4e545d0c
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
shr ecx, 1
mov eax, edi
shr eax, cl
test eax, eax
je 0x4e545d01
mov esi, ecx
jmp 0x4e545d03
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x4e545cf0
mov esi, 1
mov ecx, edx
shl esi, cl
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x58], ecx
cmp ecx, esi
je 0x4e545d60
push ecx
push eax
lea ecx, [ebp + 4]
call fcn.4e51eb20
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.4e540350
test ebx, ebx
jne 0x4e545d44
xor eax, eax
jmp 0x4e545d5c
lea ecx, [ebx*4]
cmp ecx, 0x10
jb 0x4e545d57
call fcn.4e52b7d0
jmp 0x4e545d5c
call fcn.4e52b860
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x98]
mov dword [ebp + 8], esi
mov esi, dword [esp + 0x44]
mov dword [ebp + 0xc], eax
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp edx, ecx
je 0x4e545d8c
shl eax, 2
push eax
push ecx
push edx
call fcn.4e589da0
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [ebp + 0x10], eax
add edi, 0x28
dec esi
mov dword [esp + 0x98], edi
mov dword [esp + 0x44], esi
jne 0x4e545c50
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x20]
add edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
add ebx, esi
add ecx, esi
mov dword [esp + 0x40], ebx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
cmp ebx, edi
jb 0x4e545c25
cmp dword [0x4e5de070], 0
jne 0x4e545df3
call fcn.4e53b690
mov dword [0x4e5de070], 0x4e530e70
lea ecx, [esp + 0x68]
call fcn.4e514540
mov byte [esp + 0x84], 2
mov ecx, 2
mov dword [esp + 0x68], vtable.CryptoPP::Integer.0
mov dword [esp + 0x70], 2
call fcn.4e540350
mov ecx, 8
call fcn.4e52b860
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 0
mov dword [eax + 4], 0
mov eax, dword [esp + 0x74]
mov dword [eax], 0
mov byte [esp + 0x84], 3
mov esi, dword [esp + 0x50]
xor ecx, ecx
xor ebx, ebx
dec esi
mov dword [esp + 0x90], ecx
mov byte [esp + 0x98], 1
mov ebp, esi
mov dword [esp + 0x40], esi
js 0x4e5463c6
mov edi, dword [esp + 0x70]
jmp 0x4e545e80
mov eax, dword [esp + 0x94]
mov edx, ebp
shr edx, 5
cmp edx, dword [eax + 8]
jb 0x4e545e95
xor al, al
jmp 0x4e545eab
mov eax, dword [eax + 0xc]
mov ecx, ebp
mov eax, dword [eax + edx*4]
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x90]
and al, 1
movzx eax, al
lea ecx, [eax + ecx*2]
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], ecx
cmp edx, dword [eax + 8]
jb 0x4e545ec8
xor al, al
jmp 0x4e545ede
mov eax, dword [eax + 0xc]
mov ecx, ebp
mov eax, dword [eax + edx*4]
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x90]
and al, 1
movzx eax, al
lea ebx, [eax + ebx*2]
mov dword [esp + 0x44], ebx
test ebp, ebp
je 0x4e545f02
mov edx, dword [esp + 0x1c]
lea eax, [ecx + ecx]
cmp eax, edx
jae 0x4e545f02
lea eax, [ebx + ebx]
cmp eax, edx
jb 0x4e5463bb
sub esi, ebp
xor eax, eax
mov dword [esp + 0x48], ebp
lea ebx, [ebx]
test ecx, ecx
jne 0x4e545f18
test ebx, ebx
je 0x4e545f2a
test cl, 1
jne 0x4e545f2a
test bl, 1
jne 0x4e545f2a
shr ecx, 1
shr ebx, 1
dec esi
inc eax
jmp 0x4e545f10
cmp byte [esp + 0x98], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x44], ebx
je 0x4e546110
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
shl ebx, cl
add ebx, dword [esp + 0x90]
lea ecx, [ebx + ebx*4]
lea ebp, [eax + ecx*4]
lea eax, [esp + 0x68]
cmp eax, ebp
je 0x4e54608b
mov edx, dword [ebp + 8]
cmp edi, edx
jne 0x4e545f82
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x4e546063
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x4e545f9b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
nop
cmp dword [eax], 0
jne 0x4e545f9b
sub eax, 4
dec edx
jne 0x4e545f90
cmp edx, 8
ja 0x4e545fa9
mov esi, dword [edx*4 + 0x4e5bc774]
jmp 0x4e546005
cmp edx, 0x10
ja 0x4e545fb5
mov esi, 0x10
jmp 0x4e546005
cmp edx, 0x20
ja 0x4e545fc1
mov esi, 0x20
jmp 0x4e546005
cmp edx, 0x40
ja 0x4e545fcd
mov esi, 0x40
jmp 0x4e546005
lea ebx, [edx - 1]
test ebx, ebx
jne 0x4e545fd8
xor edx, edx
jmp 0x4e545ffc
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
shr ecx, 1
mov eax, ebx
shr eax, cl
test eax, eax
je 0x4e545ff1
mov esi, ecx
jmp 0x4e545ff3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x4e545fe0
mov esi, 1
mov ecx, edx
shl esi, cl
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], edi
cmp edi, esi
jne 0x4e54601d
mov eax, dword [esp + 0x74]
jmp 0x4e546059
push edi
push dword [esp + 0x78]
lea ecx, [esp + 0x74]
call fcn.4e51eb20
mov edi, dword [esp + 0x98]
mov ecx, edi
call fcn.4e540350
test edi, edi
jne 0x4e546041
xor eax, eax
jmp 0x4e546059
lea ecx, [edi*4]
cmp ecx, 0x10
jb 0x4e546054
call fcn.4e52b7d0
jmp 0x4e546059
call fcn.4e52b860
mov edi, esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edi
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x74]
cmp ecx, edx
je 0x4e546084
lea eax, [edi*4]
push eax
push edx
push ecx
call fcn.4e589da0
mov edi, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
mov byte [esp + 0x98], 0
mov esi, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
test ebx, ebx
je 0x4e5463a8
mov eax, dword [esi]
lea ecx, [esp + 0x68]
push ecx
dec ebx
mov ecx, esi
mov dword [esp + 0x24], ebx
call dword [eax + 0x18]
mov edi, dword [esp + 0x70]
mov ebp, eax
lea eax, [esp + 0x68]
cmp eax, ebp
je 0x4e5463a0
mov ecx, dword [ebp + 8]
cmp edi, ecx
jne 0x4e5460de
mov edx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 1
cmp dword [edx + eax*4], 0
jne 0x4e546378
mov eax, dword [ebp + 0xc]
test ecx, ecx
je 0x4e5460fb
lea eax, [eax + ecx*4]
add eax, 0xfffffffc
jmp 0x4e5460f0
cmp dword [eax], 0
jne 0x4e5460fb
sub eax, 4
dec ecx
jne 0x4e5460f0
cmp ecx, 8
ja 0x4e5462b6
mov esi, dword [ecx*4 + 0x4e5bc774]
jmp 0x4e546319
test esi, esi
je 0x4e546279
jmp 0x4e546120
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x68]
mov eax, dword [ecx]
dec esi
push edx
mov dword [esp + 0x50], esi
call dword [eax + 0x18]
mov edi, dword [esp + 0x70]
mov ebp, eax
lea eax, [esp + 0x68]
cmp eax, ebp
je 0x4e546266
mov edx, dword [ebp + 8]
cmp edi, edx
jne 0x4e54615d
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x4e54623e
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x4e54617b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x4e54617b
sub eax, 4
dec edx
jne 0x4e546170
cmp edx, 8
ja 0x4e546189
mov esi, dword [edx*4 + 0x4e5bc774]
jmp 0x4e5461e5
cmp edx, 0x10
ja 0x4e546195
mov esi, 0x10
jmp 0x4e5461e5
cmp edx, 0x20
ja 0x4e5461a1
mov esi, 0x20
jmp 0x4e5461e5
cmp edx, 0x40
ja 0x4e5461ad
mov esi, 0x40
jmp 0x4e5461e5
lea ebx, [edx - 1]
test ebx, ebx
jne 0x4e5461b8
xor edx, edx
jmp 0x4e5461dc
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
shr ecx, 1
mov eax, ebx
shr eax, cl
test eax, eax
je 0x4e5461d1
mov esi, ecx
jmp 0x4e5461d3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x4e5461c0
mov esi, 1
mov ecx, edx
shl esi, cl
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], edi
cmp edi, esi
jne 0x4e5461f7
mov eax, dword [esp + 0x74]
jmp 0x4e546230
push edi
push dword [esp + 0x78]
lea ecx, [esp + 0x74]
call fcn.4e51eb20
mov edi, dword [esp + 0x50]
mov ecx, edi
call fcn.4e540350
test edi, edi
jne 0x4e546218
xor eax, eax
jmp 0x4e546230
lea ecx, [edi*4]
cmp ecx, 0x10
jb 0x4e54622b
call fcn.4e52b7d0
jmp 0x4e546230
call fcn.4e52b860
mov edi, esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edi
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x74]
cmp ecx, edx
je 0x4e54625f
lea eax, [edi*4]
push eax
push edx
push ecx
call fcn.4e589da0
mov edi, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
test esi, esi
jne 0x4e546120
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x90]
test ecx, ecx
jne 0x4e546285
test ebx, ebx
je 0x4e546093
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
shl ebx, cl
mov edx, dword [esi]
add ebx, dword [esp + 0x90]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
push eax
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call dword [edx + 0x20]
mov edi, dword [esp + 0x70]
jmp 0x4e546097
cmp ecx, 0x10
ja 0x4e5462c2
mov esi, 0x10
jmp 0x4e546319
cmp ecx, 0x20
ja 0x4e5462ce
mov esi, 0x20
jmp 0x4e546319
cmp ecx, 0x40
ja 0x4e5462da
mov esi, 0x40
jmp 0x4e546319
lea ebx, [ecx - 1]
test ebx, ebx
jne 0x4e5462e5
xor edx, edx
jmp 0x4e54630c
xor esi, esi
mov edx, 0x20
lea esp, [esp]
lea ecx, [edx + esi]
shr ecx, 1
mov eax, ebx
shr eax, cl
test eax, eax
je 0x4e546301
mov esi, ecx
jmp 0x4e546303
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x4e5462f0
mov ebx, dword [esp + 0x20]
mov esi, 1
mov ecx, edx
shl esi, cl
mov dword [esp + 0x90], esi
mov dword [esp + 0x58], edi
cmp edi, esi
jne 0x4e54632e
mov eax, dword [esp + 0x74]
jmp 0x4e54636a
push edi
push dword [esp + 0x78]
lea ecx, [esp + 0x74]
call fcn.4e51eb20
mov edi, dword [esp + 0x90]
mov ecx, edi
call fcn.4e540350
test edi, edi
jne 0x4e546352
xor eax, eax
jmp 0x4e54636a
lea ecx, [edi*4]
cmp ecx, 0x10
jb 0x4e546365
call fcn.4e52b7d0
jmp 0x4e54636a
call fcn.4e52b860
mov edi, esi
mov esi, dword [esp + 0x18]
mov dword [esp + 0x74], eax
mov dword [esp + 0x70], edi
mov edx, dword [ebp + 0xc]
mov ecx, dword [esp + 0x74]
cmp ecx, edx
je 0x4e546399
lea eax, [edi*4]
push eax
push edx
push ecx
call fcn.4e589da0
mov edi, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
test ebx, ebx
jne 0x4e5460a3
mov ebp, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
xor ebx, ebx
xor ecx, ecx
mov dword [esp + 0x90], ecx
dec ebp
mov dword [esp + 0x40], ebp
jns 0x4e545e80
mov ebx, dword [esp + 0x8c]
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.4e53cd70
lea ecx, [esp + 0x68]
mov dword [esp + 0x54], 1
mov byte [esp + 0x84], 1
call fcn.4e519730
mov byte [esp + 0x84], 0
cmp dword [esp + 0x5c], 0
je 0x4e546432
lea ecx, [esp + 0x5c]
call fcn.4e516550
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
cmp esi, edi
je 0x4e546429
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax]
add esi, 0x14
cmp esi, edi
jne 0x4e546416
mov esi, dword [esp + 0x5c]
push esi
call fcn.4e587fe6
add esp, 4
mov eax, ebx
mov ecx, dword [esp + 0x7c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x74
ret 0x14