Function at 0x555ae0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x7b1178]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x28]
cmp eax, dword [ecx + 8]
jbe 0x55655c
sub esp, 0xa8
mov eax, dword [esp + 0xac]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x555ba7
mov edx, dword [eax + 0x18]
lea ebx, [0x5e1d40]
cmp ecx, ebx
jne 0x555b2a
mov ebp, dword [edx + 0x6c]
mov esi, ebp
lea ebp, [0x5e1d00]
jmp 0x555b3b
lea ebp, [0x5e1d00]
cmp ecx, ebp
jne 0x556545
mov esi, dword [edx + 0x5c]
cmp esi, 2
jb 0x555b69
cmp ecx, ebx
jne 0x555b49
mov edx, dword [edx + 0x78]
jmp 0x555b54
cmp ecx, ebp
jne 0x55652f
mov edx, dword [edx + 0x68]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x34], edx
mov ebp, dword [eax + 0x20]
mov eax, dword [eax + 0x1c]
xor esi, esi
jmp 0x555bea
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
add esp, 0xa8
ret
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
add esp, 0xa8
ret
inc esi
mov ecx, dword [esp + 0x60]
cmp esi, ebp
jge 0x555c16
mov edi, dword [eax + esi*4]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x555be5
mov ecx, dword [edi + 0xc]
cmp edx, ecx
jb 0x555be5
sub edx, ecx
cmp dword [edi + 8], edx
ja 0x555c0c
mov edx, dword [esp + 0x34]
jmp 0x555be5
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
jmp 0x555c18
xor edi, edi
test edi, edi
je 0x555ce0
mov dword [esp + 0x88], edi
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x10]
nop
lea edx, [0x66e154]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call sym.internal_saferio.ReadDataAt
mov eax, dword [esp + 0x24]
test eax, eax
jne 0x555ca6
mov edx, dword [esp + 0x88]
mov ebx, dword [edx + 0xc]
mov eax, dword [esp + 0x34]
sub eax, ebx
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jb 0x55652a
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
sub ebp, eax
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
sub ecx, eax
add ebx, ebp
xor eax, eax
xor ebp, ebp
xor edi, edi
jmp 0x555d4b
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xa8
ret
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
add esp, 0xa8
ret
mov edi, esi
lea esi, [esp + 0x6c]
call fcn.0047049a
mov ecx, dword [esp + 0x40]
add ecx, 0xffffffec
mov esi, dword [esp + 0x8c]
mov esi, eax
mov eax, edx
mov edi, ebx
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x8c]
mov dword [esp + 0x38], edi
mov dword [esp + 0x68], ebp
cmp ecx, 0x14
jl 0x555e73
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
lea edi, [esp + 0x6c]
xor eax, eax
call fcn.0046ffc9
lea ecx, [esi - 0x14]
mov eax, ecx
neg ecx
sar ecx, 0x1f
and ecx, 0x14
mov esi, dword [ebx]
mov dword [esp + 0x6c], esi
mov esi, dword [ebx + 4]
mov dword [esp + 0x70], esi
mov esi, dword [ebx + 8]
mov dword [esp + 0x74], esi
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x78], esi
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x6c]
add ecx, ebx
test esi, esi
je 0x555e73
mov dword [esp + 0x5c], eax
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x38]
inc ebx
mov esi, edx
mov edx, dword [esp + 0x3c]
cmp edx, ebx
jae 0x555e08
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x60ba60]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0x88]
mov edx, eax
mov eax, dword [esp + 0x5c]
mov edi, dword [0x7b12d0]
imul esi, ebx, 0x1c
lea esi, [esi + ebp - 0x1c]
test edi, edi
je 0x555d1e
mov dword [esp + 0xa4], ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0xa0], esi
lea eax, [0x60ba60]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [esp + 0x6c]
mov dword [esp + 8], eax
call sym.runtime.wbMove
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xa4]
mov esi, dword [esp + 0xa0]
jmp 0x555d1e
mov eax, dword [edx + 0x3c]
mov ecx, dword [edx + 0x10]
nop
lea ebx, [0x66e154]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call sym.internal_saferio.ReadDataAt
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x30], ebx
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0x38]
xor edi, edi
xor edi, edi
mov dword [esp + 0x4c], edi
xor edi, edi
mov dword [esp + 0x90], edi
xor edi, edi
jmp 0x555f13
mov edx, dword [esp + 0x9c]
add edx, 0x1c
mov ebx, dword [esp + 0x5c]
lea esi, [ebx - 1]
mov ebx, dword [esp + 0x90]
mov ecx, edi
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x88]
mov eax, edx
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
test esi, esi
jle 0x555ffa
mov dword [esp + 0x5c], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0x9c], eax
lea edi, [esp + 0x6c]
mov esi, eax
call fcn.0047049a
mov ecx, dword [esp + 0x78]
sub ecx, dword [ebp + 0xc]
test ecx, ecx
jl 0x555f4f
cmp edx, ecx
jle 0x555f4f
mov esi, dword [esp + 0x64]
mov edi, ecx
jmp 0x5564df
xor ecx, ecx
xor esi, esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], ecx
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x10]
nop
lea edx, [0x66e154]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call sym.internal_saferio.ReadDataAt
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x88]
sub eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x1c]
cmp edx, eax
jb 0x5564d0
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x20]
sub ebp, eax
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, eax
sub edx, eax
add ebx, ebp
mov ebp, dword [esp + 0x60]
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x64]
jmp 0x556047
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x88]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
jmp 0x555ee4
mov ebp, dword [esp + 0x60]
jmp 0x555ee4
mov eax, dword [esp + 0x90]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
add esp, 0xa8
ret
mov dword [esp + 0x4c], esi
mov dword [esp + 0x48], ebp
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x44]
test edx, edx
je 0x555ee4
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x40], edx
lea ebx, [0x5e1d40]
cmp ebp, ebx
jne 0x55616a
cmp esi, 8
jb 0x5564c4
mov ebx, dword [esp + 0x8c]
movzx ebp, byte [ebx]
movzx edi, byte [ebx + 1]
mov dword [esp + 0x50], edi
shl edi, 8
or ebp, edi
mov edi, ebp
mov ebp, dword [esp + 0x50]
shr ebp, 0x18
movzx eax, byte [ebx + 2]
mov dword [esp + 0x50], eax
shl eax, 0x10
or edi, eax
mov eax, ebx
mov ebx, dword [esp + 0x50]
shr ebx, 0x10
or ebx, ebp
movzx ebp, byte [eax + 3]
mov dword [esp + 0x50], ebp
shr ebp, 8
or ebp, ebx
mov ebx, dword [esp + 0x50]
shl ebx, 0x18
movzx ecx, byte [eax + 4]
or ecx, ebp
movzx ebp, byte [eax + 5]
shl ebp, 8
or ecx, ebp
movzx ebp, byte [eax + 6]
shl ebp, 0x10
or ebp, ecx
movzx ecx, byte [eax + 7]
shl ecx, 0x18
or edi, ebx
or ebp, ecx
cmp edx, 8
jb 0x5564b8
lea ebx, [esi - 8]
mov ecx, ebx
neg ebx
sar ebx, 0x1f
and ebx, 8
add ebx, eax
test ebp, ebp
sete al
test edi, edi
xchg esi, ebx
sete bl
xchg esi, ebx
and eax, esi
test al, al
jne 0x555fd9
mov dword [esp + 0x58], ecx
mov dword [esp + 0x8c], ebx
and ebp, 0x80000000
test ebp, ebp
jbe 0x556139
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x90]
jmp 0x55641f
mov eax, dword [esp + 0x88]
mov ebp, dword [eax + 0xc]
sub edi, ebp
lea ebp, [edi + 2]
test ebp, ebp
jl 0x55615d
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jle 0x556161
mov dword [esp + 0x50], ebp
jmp 0x556462
mov esi, dword [esp + 0x2c]
xor ebp, ebp
xor edi, edi
jmp 0x55634c
cmp esi, 4
jb 0x556340
cmp edx, 4
jb 0x556334
add esi, 0xfffffffc
mov dword [esp + 0x44], esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov ebx, dword [esp + 0x8c]
mov ebp, dword [ebx]
add ebx, esi
test ebp, ebp
je 0x555ff1
test ebp, 0x80000000
jbe 0x5561b7
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
jmp 0x5562d3
mov dword [esp + 0x98], ebx
mov esi, dword [ecx + 0xc]
sub ebp, esi
lea esi, [ebp + 2]
test esi, esi
jl 0x5561d7
cmp eax, esi
jle 0x5561d7
mov dword [esp + 0x50], esi
jmp 0x5562e3
xor ebp, ebp
xor esi, esi
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
lea ebx, [0x66d4e0]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
call sym.runtime.concatstring3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x58]
cmp edx, ebx
jb 0x55623d
mov ebp, dword [esp + 0x90]
jmp 0x55628c
mov dword [esp + 0x58], ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5ed6a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x58]
lea esi, [ebp + ebx*8 - 4]
mov dword [esi], ecx
mov ecx, dword [0x7b12d0]
lea esi, [ebp + ebx*8 - 8]
test ecx, ecx
je 0x5562ac
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [esi]
mov dword [edi + 4], ecx
mov dword [esi], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x64]
mov esi, edx
mov dword [esp + 0x90], ebp
mov edx, dword [esp + 0x40]
mov ebp, ebx
mov ebx, dword [esp + 0x98]
add edx, 0xfffffffc
jmp 0x556037
inc esi
mov ecx, dword [esp + 0x88]
cmp esi, eax
jge 0x55632b
movzx ecx, byte [esi + edi]
test cl, cl
jne 0x5562db
mov dword [esp], 0
mov eax, dword [esp + 0x30]
sub eax, ebp
sub esi, ebp
add eax, 0xfffffffe
neg eax
sar eax, 0x1f
mov edx, dword [esp + 0x50]
and eax, edx
add eax, edi
mov dword [esp + 4], eax
lea eax, [esi - 2]
mov dword [esp + 8], eax
call sym.runtime.slicebytetostring
mov esi, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
jmp 0x5561db
xor ebp, ebp
xor esi, esi
jmp 0x5561db
mov eax, 4
mov ecx, edx
call sym.runtime.panicSliceB
mov ecx, 4
mov edx, esi
call sym.runtime.panicSliceAcap
mov eax, dword [esp + 0x48]
inc eax
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
lea ebx, [0x66d4e0]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
call sym.runtime.concatstring3
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x54]
cmp edx, ebx
jb 0x5563ae
mov ebp, dword [esp + 0x90]
jmp 0x5563fd
mov dword [esp + 0x54], ecx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5ed6a0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x54]
lea esi, [ebp + ebx*8 - 4]
mov dword [esi], ecx
mov ecx, dword [0x7b12d0]
lea esi, [ebp + ebx*8 - 8]
test ecx, ecx
je 0x55641d
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ecx, dword [esi]
mov dword [edi + 4], ecx
mov dword [esi], eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff8
mov ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x44], esi
mov esi, edx
mov dword [esp + 0x90], ebp
mov edx, eax
mov ebp, ebx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x8c]
jmp 0x556037
inc ebp
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x58]
cmp ebp, esi
jge 0x5564af
mov eax, dword [esp + 0x64]
movzx ecx, byte [ebp + eax]
test cl, cl
jne 0x556456
mov dword [esp], 0
mov ecx, dword [esp + 0x30]
sub ecx, edi
sub ebp, edi
add ecx, 0xfffffffe
neg ecx
sar ecx, 0x1f
mov ebx, dword [esp + 0x50]
and ecx, ebx
add ecx, eax
mov dword [esp + 4], ecx
lea ecx, [ebp - 2]
mov dword [esp + 8], ecx
call sym.runtime.slicebytetostring
mov edi, dword [esp + 0xc]
mov ebp, dword [esp + 0x10]
jmp 0x55634c
xor ebp, ebp
xor edi, edi
jmp 0x55634c
mov eax, 8
mov ecx, edx
call sym.runtime.panicSliceB
mov ecx, 8
mov edx, esi
call sym.runtime.panicSliceAcap
mov ecx, edx
call sym.runtime.panicSliceBU
inc ecx
mov eax, dword [esp + 0x9c]
cmp ecx, edx
jge 0x556521
movzx eax, byte [ecx + esi]
test al, al
jne 0x5564d7
mov dword [esp], 0
sub ebx, edi
neg ebx
sar ebx, 0x1f
and ebx, edi
lea edx, [esi + ebx]
mov dword [esp + 4], edx
sub ecx, edi
mov dword [esp + 8], ecx
call sym.runtime.slicebytetostring
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x88]
jmp 0x555f53
xor ecx, ecx
xor esi, esi
jmp 0x555f53
call sym.runtime.panicSliceBU
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea eax, [0x5ee5a0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea eax, [0x5ee5a0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
nop
call sym.runtime.morestack_noctxt
jmp sym.debug_pe._File_.ImportedSymbols