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

Disassembly:
mov ecx, dword [0x776294]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx + 8]
jbe 0x542f87
sub esp, 0xc8
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x5425b7
mov edx, dword [eax + 0x18]
lea ebx, [0x5b8e80]
cmp ecx, ebx
jne 0x54253a
mov ebp, dword [edx + 0x6c]
mov esi, ebp
lea ebp, [0x5b8e40]
jmp 0x54254b
lea ebp, [0x5b8e40]
cmp ecx, ebp
jne 0x542f70
mov esi, dword [edx + 0x5c]
cmp esi, 2
jb 0x542579
cmp ecx, ebx
jne 0x542559
mov edx, dword [edx + 0x78]
jmp 0x542564
cmp ecx, ebp
jne 0x542f5a
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 0x5425fa
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
inc esi
mov ecx, dword [esp + 0x60]
cmp esi, ebp
jge 0x542626
mov edi, dword [eax + esi*4]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x5425f5
mov ecx, dword [edi + 0xc]
cmp edx, ecx
jb 0x5425f5
sub edx, ecx
cmp dword [edi + 8], edx
ja 0x54261c
mov edx, dword [esp + 0x34]
jmp 0x5425f5
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x34]
jmp 0x542628
xor edi, edi
test edi, edi
je 0x5426f0
mov dword [esp + 0xa4], edi
mov eax, dword [edi + 0x3c]
mov ecx, dword [edi + 0x10]
nop
lea edx, [0x634aa4]
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 0x5426b6
mov edx, dword [esp + 0xa4]
mov ebx, dword [edx + 0xc]
mov eax, dword [esp + 0x34]
sub eax, ebx
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
jb 0x542f55
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 0x54275e
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ecx
add esp, 0xc8
ret
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
mov edi, esi
lea esi, [esp + 0x88]
call fcn.0046b06a
mov ecx, dword [esp + 0x40]
add ecx, 0xffffffec
mov esi, dword [esp + 0xa8]
mov esi, eax
mov eax, edx
mov edi, ebx
mov edx, dword [esp + 0xa4]
mov ebx, dword [esp + 0xa8]
mov dword [esp + 0x38], edi
mov dword [esp + 0x68], ebp
cmp ecx, 0x14
jl 0x54289e
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
lea edi, [esp + 0x88]
xor eax, eax
call fcn.0046ab99
lea ecx, [esi - 0x14]
mov eax, ecx
neg ecx
sar ecx, 0x1f
and ecx, 0x14
mov esi, dword [ebx]
mov dword [esp + 0x88], esi
mov esi, dword [ebx + 4]
mov dword [esp + 0x8c], esi
mov esi, dword [ebx + 8]
mov dword [esp + 0x90], esi
mov esi, dword [ebx + 0xc]
mov dword [esp + 0x94], esi
mov esi, dword [ebx + 0x10]
mov dword [esp + 0x98], esi
mov esi, dword [esp + 0x88]
add ecx, ebx
test esi, esi
je 0x54289e
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa8], ecx
mov ebx, dword [esp + 0x38]
inc ebx
mov esi, edx
mov edx, dword [esp + 0x3c]
cmp edx, ebx
jae 0x542830
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5dd040]
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 + 0xa8]
mov esi, dword [esp + 0xa4]
mov edx, eax
mov eax, dword [esp + 0x5c]
mov edi, dword [0x776350]
imul esi, ebx, 0x1c
lea esi, [esi + ebp - 0x1c]
test edi, edi
je 0x54272e
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x58], ebx
mov dword [esp + 0x54], edx
mov dword [esp + 0xc0], esi
lea eax, [0x5dd040]
mov dword [esp], eax
mov dword [esp + 4], esi
lea eax, [esp + 0x88]
mov dword [esp + 8], eax
call sym.runtime.wbMove
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0xa8]
mov edx, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
mov ebp, dword [esp + 0xc4]
mov esi, dword [esp + 0xc0]
jmp 0x54272e
mov eax, dword [edx + 0x3c]
mov ecx, dword [edx + 0x10]
nop
lea ebx, [0x634aa4]
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 + 0xa4]
mov esi, dword [esp + 0x38]
xor edi, edi
xor edi, edi
mov dword [esp + 0x4c], edi
xor edi, edi
mov dword [esp + 0xac], edi
xor edi, edi
jmp 0x54293e
mov edx, dword [esp + 0xbc]
add edx, 0x1c
mov ebx, dword [esp + 0x5c]
lea esi, [ebx - 1]
mov ebx, dword [esp + 0xac]
mov ecx, edi
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0xa4]
mov eax, edx
mov edi, dword [esp + 0x48]
mov edx, dword [esp + 0x2c]
test esi, esi
jle 0x542a25
mov dword [esp + 0x5c], esi
mov dword [esp + 0x48], edi
mov dword [esp + 0xbc], eax
lea edi, [esp + 0x6c]
mov esi, eax
call fcn.0046b06a
mov ecx, dword [esp + 0x78]
sub ecx, dword [ebp + 0xc]
test ecx, ecx
jl 0x54297a
cmp edx, ecx
jle 0x54297a
mov esi, dword [esp + 0x64]
mov edi, ecx
jmp 0x542f0a
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, [0x634aa4]
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 + 0xa4]
sub eax, dword [ecx + 0xc]
mov edx, dword [esp + 0x1c]
cmp edx, eax
jb 0x542efb
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 0x542a72
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
jmp 0x54290f
mov ebp, dword [esp + 0x60]
jmp 0x54290f
mov eax, dword [esp + 0xac]
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], edi
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
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 0x54290f
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x40], edx
lea ebx, [0x5b8e80]
cmp ebp, ebx
jne 0x542b95
cmp esi, 8
jb 0x542eef
mov ebx, dword [esp + 0xa8]
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 0x542ee3
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 0x542a04
mov dword [esp + 0x58], ecx
mov dword [esp + 0xa8], ebx
and ebp, 0x80000000
test ebp, ebp
jbe 0x542b64
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0xac]
jmp 0x542e4a
mov eax, dword [esp + 0xa4]
mov ebp, dword [eax + 0xc]
sub edi, ebp
lea ebp, [edi + 2]
test ebp, ebp
jl 0x542b88
mov esi, dword [esp + 0x2c]
cmp esi, ebp
jle 0x542b8c
mov dword [esp + 0x50], ebp
jmp 0x542e8d
mov esi, dword [esp + 0x2c]
xor ebp, ebp
xor edi, edi
jmp 0x542d77
cmp esi, 4
jb 0x542d6b
cmp edx, 4
jb 0x542d5f
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 + 0xa8]
mov ebp, dword [ebx]
add ebx, esi
test ebp, ebp
je 0x542a1c
test ebp, 0x80000000
jbe 0x542be2
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x4c]
jmp 0x542cfe
mov dword [esp + 0xb8], ebx
mov esi, dword [ecx + 0xc]
sub ebp, esi
lea esi, [ebp + 2]
test esi, esi
jl 0x542c02
cmp eax, esi
jle 0x542c02
mov dword [esp + 0x50], esi
jmp 0x542d0e
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, [0x6340d4]
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 0x542c68
mov ebp, dword [esp + 0xac]
jmp 0x542cb7
mov dword [esp + 0x58], ecx
mov dword [esp + 0xb4], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5c2b40]
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 + 0xb4]
mov ecx, dword [esp + 0x58]
lea esi, [ebp + ebx*8 - 4]
mov dword [esi], ecx
mov ecx, dword [0x776350]
lea esi, [ebp + ebx*8 - 8]
test ecx, ecx
je 0x542cd7
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 + 0xa4]
mov edi, dword [esp + 0x64]
mov esi, edx
mov dword [esp + 0xac], ebp
mov edx, dword [esp + 0x40]
mov ebp, ebx
mov ebx, dword [esp + 0xb8]
add edx, 0xfffffffc
jmp 0x542a62
inc esi
mov ecx, dword [esp + 0xa4]
cmp esi, eax
jge 0x542d56
movzx ecx, byte [esi + edi]
test cl, cl
jne 0x542d06
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 0x542c06
xor ebp, ebp
xor esi, esi
jmp 0x542c06
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, [0x6340d4]
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 0x542dd9
mov ebp, dword [esp + 0xac]
jmp 0x542e28
mov dword [esp + 0x54], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5c2b40]
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 + 0xb0]
mov ecx, dword [esp + 0x54]
lea esi, [ebp + ebx*8 - 4]
mov dword [esi], ecx
mov ecx, dword [0x776350]
lea esi, [ebp + ebx*8 - 8]
test ecx, ecx
je 0x542e48
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 + 0xa4]
mov edi, dword [esp + 0x64]
mov esi, dword [esp + 0x58]
mov dword [esp + 0x44], esi
mov esi, edx
mov dword [esp + 0xac], ebp
mov edx, eax
mov ebp, ebx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0xa8]
jmp 0x542a62
inc ebp
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x58]
cmp ebp, esi
jge 0x542eda
mov eax, dword [esp + 0x64]
movzx ecx, byte [ebp + eax]
test cl, cl
jne 0x542e81
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 0x542d77
xor ebp, ebp
xor edi, edi
jmp 0x542d77
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 + 0xbc]
cmp ecx, edx
jge 0x542f4c
movzx eax, byte [ecx + esi]
test al, al
jne 0x542f02
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 + 0xa4]
jmp 0x54297e
xor ecx, ecx
xor esi, esi
jmp 0x54297e
call sym.runtime.panicSliceBU
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea eax, [0x5c3840]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea eax, [0x5c3840]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
nop
call sym.runtime.morestack_noctxt
jmp sym.debug_pe._File_.ImportedSymbols