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

Disassembly:
mov ecx, dword [0x80b088]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5257d1
sub esp, 0x74
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0xc]
test eax, eax
je 0x52558c
mov ecx, dword [edx + 4]
cmp ecx, eax
jbe 0x5257cb
mov ebx, dword [edx]
lea ebp, [eax + eax*2]
lea eax, [ebx + ebp*8]
cmp byte [eax], 3
jne 0x525580
lea ebp, [ebx + ebp*8 + 8]
mov ebp, dword [ebp]
xchg ebp, eax
test al, 4
xchg ebp, eax
je 0x525580
mov dword [esp + 0x10], ecx
xor eax, eax
jmp 0x5255a0
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
add ebx, 0x18
inc eax
mov ecx, dword [esp + 0x10]
cmp eax, ecx
jge 0x525646
lea edi, [esp + 0x38]
mov esi, ebx
call fcn.004678b4
mov ecx, dword [edx + 4]
mov ebp, dword [esp + 0x3c]
cmp ecx, ebp
jbe 0x5257c4
mov esi, dword [edx]
lea ebp, [ebp + ebp*2]
lea ebp, [esi + ebp*8]
movzx edi, byte [esp + 0x38]
movzx ebp, byte [ebp]
xchg edi, eax
cmp al, 1
xchg edi, eax
ja 0x5255fc
xchg ebp, eax
cmp al, 4
xchg ebp, eax
je 0x525622
mov ebp, dword [esp + 0x40]
cmp ebp, ecx
jae 0x5257bd
lea ecx, [ebp + ebp*2]
lea ecx, [esi + ecx*8]
cmp byte [ecx], 4
jne 0x525598
jmp 0x525622
xchg edi, eax
cmp al, 3
xchg edi, eax
jne 0x525615
xchg ebp, eax
cmp al, 4
xchg ebp, eax
jne 0x525598
mov ecx, dword [esp + 0x40]
test cl, 8
jne 0x525598
jmp 0x52562e
xchg ebp, eax
cmp al, 4
xchg ebp, eax
jne 0x525598
jmp 0x52563a
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp + 0x7c], 0
add esp, 0x74
ret
mov dword [esp], edx
call sym.regexp.onePassCopy
mov eax, dword [esp + 4]
mov dword [esp], eax
call sym.regexp.makeOnePass
mov eax, dword [esp + 4]
test eax, eax
je 0x525678
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x78]
mov edx, dword [ecx]
nop
mov ecx, dword [ecx + 4]
mov dword [esp + 0x10], ecx
xor ebx, ebx
jmp 0x525688
mov dword [esp + 0x7c], eax
add esp, 0x74
ret
add edx, 0x18
inc ebx
mov ecx, dword [esp + 0x10]
cmp ebx, ecx
jge 0x525678
lea edi, [esp + 0x20]
mov esi, edx
call fcn.004678b4
movzx ecx, byte [esp + 0x20]
cmp cl, 6
ja 0x5256e5
cmp cl, 1
jbe 0x525680
mov ecx, dword [eax + 4]
cmp ebx, ecx
jae 0x5257b6
mov ecx, dword [eax]
lea ebp, [ebx + ebx*8]
mov dword [ecx + ebp*4 + 0x1c], 0
mov dword [ecx + ebp*4 + 0x20], 0
mov esi, dword [0x80b220]
test esi, esi
je 0x5256db
mov esi, dword [ecx + ebp*4 + 0x18]
call sym.runtime.gcWriteBarrier1
mov dword [edi], esi
mov dword [ecx + ebp*4 + 0x18], 0
jmp 0x525680
cmp cl, 7
je 0x525680
cmp cl, 0xa
ja 0x525680
mov ecx, dword [eax + 4]
cmp ebx, ecx
jae 0x5257af
mov ecx, dword [eax]
lea ebp, [ebx + ebx*8]
mov dword [ecx + ebp*4 + 0x1c], 0
mov dword [ecx + ebp*4 + 0x20], 0
mov esi, dword [0x80b220]
test esi, esi
je 0x525724
mov esi, dword [ecx + ebp*4 + 0x18]
call sym.runtime.gcWriteBarrier1
mov dword [edi], esi
mov dword [ecx + ebp*4 + 0x18], 0
lea edi, [esp + 0x50]
xor eax, eax
call fcn.004673d7
lea edi, [esp + 0x50]
lea esi, [esp + 0x20]
call fcn.004678b4
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
cmp ebx, eax
jae 0x5257a6
mov eax, dword [ecx]
mov esi, dword [0x80b220]
lea edi, [eax + ebp*4]
test esi, esi
je 0x525794
mov dword [esp + 0xc], ebx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], edi
lea eax, [0x6119e0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
call sym.runtime.wbMove
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x18]
lea esi, [esp + 0x50]
call fcn.00467896
mov eax, dword [esp + 0x14]
jmp 0x525680
mov ecx, eax
mov eax, ebx
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicIndexU
mov eax, ebp
call sym.runtime.panicIndexU
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.regexp.compileOnePass