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

Disassembly:
push 0xffffffffffffffff
push 0x5e6306b1
mov eax, dword fs:[0]
push eax
sub esp, 0x68
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5e682c80]
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 0x5e54f28b
lea eax, [esi - 1]
lea eax, [edx + eax*4]
lea esp, [esp]
cmp dword [eax], 0
jne 0x5e54f2f0
sub eax, 4
dec esi
jne 0x5e54f280
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 0x5e54f2b3
lea eax, [esi - 1]
lea eax, [ecx + eax*4]
cmp dword [eax], 0
jne 0x5e54f309
sub eax, 4
dec esi
jne 0x5e54f2a8
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 0x5e54f322
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x8c]
push eax
call fcn.5e54a2e0
mov eax, dword [esp + 0x8c]
jmp 0x5e550014
test esi, esi
je 0x5e54f28b
lea ecx, [edx - 4]
lea ecx, [ecx + esi*4]
call fcn.5e538020
lea edi, [esi - 1]
shl edi, 5
add edi, eax
jmp 0x5e54f28d
test esi, esi
je 0x5e54f2b3
lea ecx, [ecx + esi*4]
add ecx, 0xfffffffc
call fcn.5e538020
lea ecx, [esi - 1]
shl ecx, 5
add ecx, eax
jmp 0x5e54f2b5
cmp eax, 0x2e
ja 0x5e54f32e
mov esi, 1
jmp 0x5e54f33c
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.5e550b40
mov dword [esp + 0x84], 1
mov ecx, dword [esp + 0x5c]
push dword [esp + 0x90]
lea ecx, [ecx + 0x14]
call fcn.5e54a640
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.5e54a640
mov ecx, dword [esp + 0x18]
cmp esi, 1
mov eax, dword [ecx]
mov esi, dword [esp + 0x5c]
jne 0x5e54f3db
push ebp
push dword [esp + 0x94]
call dword [eax + 0xc]
push eax
lea ecx, [esi + 0x3c]
call fcn.5e54a640
jmp 0x5e54f9bb
push dword [esp + 0x90]
call dword [eax + 0x18]
push eax
lea ecx, [esi + 0x28]
call fcn.5e54a640
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.5e54a640
mov edx, dword [esp + 0x1c]
cmp edx, 3
jbe 0x5e54f46b
lea ebx, [edx - 4]
shr ebx, 1
mov ebp, 0x3c
inc ebx
jmp 0x5e54f430
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.5e54a640
add ebp, 0x28
dec ebx
jne 0x5e54f430
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 0x5e54f63b
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 0x5e54f613
mov edi, ecx
mov dword [esp + 0x30], ecx
mov ecx, edx
mov dword [esp + 0x34], edx
jmp 0x5e54f4b0
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x18]
add ecx, eax
lea ebx, [edi + eax]
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 0x5e54f5d2
mov edx, dword [ebp + 8]
cmp dword [ebx + 8], edx
jne 0x5e54f4ed
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x5e54f5b1
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x5e54f50b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x5e54f50b
sub eax, 4
dec edx
jne 0x5e54f500
cmp edx, 8
ja 0x5e54f519
mov esi, dword [edx*4 + 0x5e6565a4]
jmp 0x5e54f556
cmp edx, 0x10
ja 0x5e54f525
mov esi, 0x10
jmp 0x5e54f556
cmp edx, 0x20
ja 0x5e54f531
mov esi, 0x20
jmp 0x5e54f556
cmp edx, 0x40
ja 0x5e54f53d
mov esi, 0x40
jmp 0x5e54f556
lea eax, [edx - 1]
lea ecx, [esp + 0x48]
mov dword [esp + 0x48], eax
call fcn.5e538020
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 0x5e54f5a3
push ecx
push eax
mov ecx, edi
call fcn.5e524510
mov ebx, dword [esp + 0x48]
mov ecx, ebx
call fcn.5e54d8c0
test ebx, ebx
jne 0x5e54f587
xor eax, eax
jmp 0x5e54f59f
lea ecx, [ebx*4]
cmp ecx, 0x10
jb 0x5e54f59a
call fcn.5e538790
jmp 0x5e54f59f
call fcn.5e538820
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 0x5e54f5cc
shl eax, 2
push eax
push ecx
push edx
call fcn.5e601680
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 0x5e54f4b0
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 0x5e54f490
mov edx, dword [esp + 0x1c]
lea esi, [edx + edx*2]
mov dword [esp + 0x98], esi
cmp esi, edi
jae 0x5e54f7c6
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 0x5e54f670
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 0x5e54f796
mov edx, dword [ebp + 8]
cmp dword [ebx + 8], edx
jne 0x5e54f6b4
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x5e54f775
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x5e54f6cc
lea eax, [eax + edx*4]
add eax, 0xfffffffc
cmp dword [eax], 0
jne 0x5e54f6cc
sub eax, 4
dec edx
jne 0x5e54f6c1
cmp edx, 8
ja 0x5e54f6da
mov esi, dword [edx*4 + 0x5e6565a4]
jmp 0x5e54f717
cmp edx, 0x10
ja 0x5e54f6e6
mov esi, 0x10
jmp 0x5e54f717
cmp edx, 0x20
ja 0x5e54f6f2
mov esi, 0x20
jmp 0x5e54f717
cmp edx, 0x40
ja 0x5e54f6fe
mov esi, 0x40
jmp 0x5e54f717
lea eax, [edx - 1]
lea ecx, [esp + 0x4c]
mov dword [esp + 0x4c], eax
call fcn.5e538020
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 0x5e54f764
push ecx
push eax
mov ecx, edi
call fcn.5e524510
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.5e54d8c0
test ebx, ebx
jne 0x5e54f748
xor eax, eax
jmp 0x5e54f760
lea ecx, [ebx*4]
cmp ecx, 0x10
jb 0x5e54f75b
call fcn.5e538790
jmp 0x5e54f760
call fcn.5e538820
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 0x5e54f790
shl eax, 2
push eax
push ecx
push edx
call fcn.5e601680
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 0x5e54f670
mov edi, dword [esp + 0x20]
mov ebx, edx
mov dword [esp + 0x40], ebx
cmp edx, edi
jae 0x5e54f9bb
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 0x5e54f99b
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 0x5e54f830
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 0x5e54f972
mov edx, dword [ebx + 8]
cmp dword [ebp + 8], edx
jne 0x5e54f873
mov ecx, dword [ebx + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x5e54f951
mov eax, dword [ebx + 0xc]
test edx, edx
je 0x5e54f88b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
cmp dword [eax], 0
jne 0x5e54f88b
sub eax, 4
dec edx
jne 0x5e54f880
cmp edx, 8
ja 0x5e54f899
mov esi, dword [edx*4 + 0x5e6565a4]
jmp 0x5e54f8f5
cmp edx, 0x10
ja 0x5e54f8a5
mov esi, 0x10
jmp 0x5e54f8f5
cmp edx, 0x20
ja 0x5e54f8b1
mov esi, 0x20
jmp 0x5e54f8f5
cmp edx, 0x40
ja 0x5e54f8bd
mov esi, 0x40
jmp 0x5e54f8f5
lea edi, [edx - 1]
test edi, edi
jne 0x5e54f8c8
xor edx, edx
jmp 0x5e54f8ec
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
shr ecx, 1
mov eax, edi
shr eax, cl
test eax, eax
je 0x5e54f8e1
mov esi, ecx
jmp 0x5e54f8e3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x5e54f8d0
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 0x5e54f940
push ecx
push eax
lea ecx, [ebp + 4]
call fcn.5e524510
mov ebx, dword [esp + 0x4c]
mov ecx, ebx
call fcn.5e54d8c0
test ebx, ebx
jne 0x5e54f924
xor eax, eax
jmp 0x5e54f93c
lea ecx, [ebx*4]
cmp ecx, 0x10
jb 0x5e54f937
call fcn.5e538790
jmp 0x5e54f93c
call fcn.5e538820
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 0x5e54f96c
shl eax, 2
push eax
push ecx
push edx
call fcn.5e601680
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 0x5e54f830
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 0x5e54f805
cmp dword [0x5e689700], 0
jne 0x5e54f9d3
call fcn.5e548c00
mov dword [0x5e689700], 0x5e53e3e0
lea ecx, [esp + 0x68]
call fcn.5e51ef60
mov byte [esp + 0x84], 2
mov ecx, 2
mov dword [esp + 0x68], vtable.CryptoPP::Integer.0
mov dword [esp + 0x70], 2
call fcn.5e54d8c0
mov ecx, 8
call fcn.5e538820
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 0x5e54ffa6
mov edi, dword [esp + 0x70]
jmp 0x5e54fa60
mov eax, dword [esp + 0x94]
mov edx, ebp
shr edx, 5
cmp edx, dword [eax + 8]
jb 0x5e54fa75
xor al, al
jmp 0x5e54fa8b
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 0x5e54faa8
xor al, al
jmp 0x5e54fabe
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 0x5e54fae2
mov edx, dword [esp + 0x1c]
lea eax, [ecx + ecx]
cmp eax, edx
jae 0x5e54fae2
lea eax, [ebx + ebx]
cmp eax, edx
jb 0x5e54ff9b
sub esi, ebp
xor eax, eax
mov dword [esp + 0x48], ebp
lea ebx, [ebx]
test ecx, ecx
jne 0x5e54faf8
test ebx, ebx
je 0x5e54fb0a
test cl, 1
jne 0x5e54fb0a
test bl, 1
jne 0x5e54fb0a
shr ecx, 1
shr ebx, 1
dec esi
inc eax
jmp 0x5e54faf0
cmp byte [esp + 0x98], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x90], ecx
mov dword [esp + 0x44], ebx
je 0x5e54fcf0
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 0x5e54fc6b
mov edx, dword [ebp + 8]
cmp edi, edx
jne 0x5e54fb62
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x5e54fc43
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x5e54fb7b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
nop
cmp dword [eax], 0
jne 0x5e54fb7b
sub eax, 4
dec edx
jne 0x5e54fb70
cmp edx, 8
ja 0x5e54fb89
mov esi, dword [edx*4 + 0x5e6565a4]
jmp 0x5e54fbe5
cmp edx, 0x10
ja 0x5e54fb95
mov esi, 0x10
jmp 0x5e54fbe5
cmp edx, 0x20
ja 0x5e54fba1
mov esi, 0x20
jmp 0x5e54fbe5
cmp edx, 0x40
ja 0x5e54fbad
mov esi, 0x40
jmp 0x5e54fbe5
lea ebx, [edx - 1]
test ebx, ebx
jne 0x5e54fbb8
xor edx, edx
jmp 0x5e54fbdc
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
shr ecx, 1
mov eax, ebx
shr eax, cl
test eax, eax
je 0x5e54fbd1
mov esi, ecx
jmp 0x5e54fbd3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x5e54fbc0
mov esi, 1
mov ecx, edx
shl esi, cl
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], edi
cmp edi, esi
jne 0x5e54fbfd
mov eax, dword [esp + 0x74]
jmp 0x5e54fc39
push edi
push dword [esp + 0x78]
lea ecx, [esp + 0x74]
call fcn.5e524510
mov edi, dword [esp + 0x98]
mov ecx, edi
call fcn.5e54d8c0
test edi, edi
jne 0x5e54fc21
xor eax, eax
jmp 0x5e54fc39
lea ecx, [edi*4]
cmp ecx, 0x10
jb 0x5e54fc34
call fcn.5e538790
jmp 0x5e54fc39
call fcn.5e538820
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 0x5e54fc64
lea eax, [edi*4]
push eax
push edx
push ecx
call fcn.5e601680
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 0x5e54ff88
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 0x5e54ff80
mov ecx, dword [ebp + 8]
cmp edi, ecx
jne 0x5e54fcbe
mov edx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 1
cmp dword [edx + eax*4], 0
jne 0x5e54ff58
mov eax, dword [ebp + 0xc]
test ecx, ecx
je 0x5e54fcdb
lea eax, [eax + ecx*4]
add eax, 0xfffffffc
jmp 0x5e54fcd0
cmp dword [eax], 0
jne 0x5e54fcdb
sub eax, 4
dec ecx
jne 0x5e54fcd0
cmp ecx, 8
ja 0x5e54fe96
mov esi, dword [ecx*4 + 0x5e6565a4]
jmp 0x5e54fef9
test esi, esi
je 0x5e54fe59
jmp 0x5e54fd00
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 0x5e54fe46
mov edx, dword [ebp + 8]
cmp edi, edx
jne 0x5e54fd3d
mov ecx, dword [ebp + 0xc]
mov eax, edx
shr eax, 1
cmp dword [ecx + eax*4], 0
jne 0x5e54fe1e
mov eax, dword [ebp + 0xc]
test edx, edx
je 0x5e54fd5b
lea eax, [eax + edx*4]
add eax, 0xfffffffc
lea ebx, [ebx]
cmp dword [eax], 0
jne 0x5e54fd5b
sub eax, 4
dec edx
jne 0x5e54fd50
cmp edx, 8
ja 0x5e54fd69
mov esi, dword [edx*4 + 0x5e6565a4]
jmp 0x5e54fdc5
cmp edx, 0x10
ja 0x5e54fd75
mov esi, 0x10
jmp 0x5e54fdc5
cmp edx, 0x20
ja 0x5e54fd81
mov esi, 0x20
jmp 0x5e54fdc5
cmp edx, 0x40
ja 0x5e54fd8d
mov esi, 0x40
jmp 0x5e54fdc5
lea ebx, [edx - 1]
test ebx, ebx
jne 0x5e54fd98
xor edx, edx
jmp 0x5e54fdbc
xor esi, esi
mov edx, 0x20
nop
lea ecx, [edx + esi]
shr ecx, 1
mov eax, ebx
shr eax, cl
test eax, eax
je 0x5e54fdb1
mov esi, ecx
jmp 0x5e54fdb3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x5e54fda0
mov esi, 1
mov ecx, edx
shl esi, cl
mov dword [esp + 0x50], esi
mov dword [esp + 0x58], edi
cmp edi, esi
jne 0x5e54fdd7
mov eax, dword [esp + 0x74]
jmp 0x5e54fe10
push edi
push dword [esp + 0x78]
lea ecx, [esp + 0x74]
call fcn.5e524510
mov edi, dword [esp + 0x50]
mov ecx, edi
call fcn.5e54d8c0
test edi, edi
jne 0x5e54fdf8
xor eax, eax
jmp 0x5e54fe10
lea ecx, [edi*4]
cmp ecx, 0x10
jb 0x5e54fe0b
call fcn.5e538790
jmp 0x5e54fe10
call fcn.5e538820
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 0x5e54fe3f
lea eax, [edi*4]
push eax
push edx
push ecx
call fcn.5e601680
mov edi, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
test esi, esi
jne 0x5e54fd00
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + 0x90]
test ecx, ecx
jne 0x5e54fe65
test ebx, ebx
je 0x5e54fc73
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 0x5e54fc77
cmp ecx, 0x10
ja 0x5e54fea2
mov esi, 0x10
jmp 0x5e54fef9
cmp ecx, 0x20
ja 0x5e54feae
mov esi, 0x20
jmp 0x5e54fef9
cmp ecx, 0x40
ja 0x5e54feba
mov esi, 0x40
jmp 0x5e54fef9
lea ebx, [ecx - 1]
test ebx, ebx
jne 0x5e54fec5
xor edx, edx
jmp 0x5e54feec
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 0x5e54fee1
mov esi, ecx
jmp 0x5e54fee3
mov edx, ecx
mov eax, edx
sub eax, esi
cmp eax, 1
ja 0x5e54fed0
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 0x5e54ff0e
mov eax, dword [esp + 0x74]
jmp 0x5e54ff4a
push edi
push dword [esp + 0x78]
lea ecx, [esp + 0x74]
call fcn.5e524510
mov edi, dword [esp + 0x90]
mov ecx, edi
call fcn.5e54d8c0
test edi, edi
jne 0x5e54ff32
xor eax, eax
jmp 0x5e54ff4a
lea ecx, [edi*4]
cmp ecx, 0x10
jb 0x5e54ff45
call fcn.5e538790
jmp 0x5e54ff4a
call fcn.5e538820
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 0x5e54ff79
lea eax, [edi*4]
push eax
push edx
push ecx
call fcn.5e601680
mov edi, dword [esp + 0x7c]
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x78], eax
test ebx, ebx
jne 0x5e54fc83
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 0x5e54fa60
mov ebx, dword [esp + 0x8c]
lea eax, [esp + 0x68]
push eax
mov ecx, ebx
call fcn.5e54a2e0
lea ecx, [esp + 0x68]
mov dword [esp + 0x54], 1
mov byte [esp + 0x84], 1
call fcn.5e51fb50
mov byte [esp + 0x84], 0
cmp dword [esp + 0x5c], 0
je 0x5e550012
lea ecx, [esp + 0x5c]
call fcn.5e519a90
mov edi, dword [esp + 0x60]
mov esi, dword [esp + 0x5c]
cmp esi, edi
je 0x5e550009
mov eax, dword [esi]
push 0
mov ecx, esi
call dword [eax]
add esi, 0x14
cmp esi, edi
jne 0x5e54fff6
mov esi, dword [esp + 0x5c]
push esi
call fcn.5e5fd9d6
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