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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x2c
mov eax, dword [ecx + 0x78]
mov edx, dword [ecx + 0x7c]
test eax, eax
mov esi, eax
jne 0x61b5bdf8
mov esi, dword [ecx + 0x58]
mov ecx, dword [ebx + 0x10]
cmp byte [ebx + 0x6a], 0
mov edi, dword [ecx + 0x30]
mov dword [esp + 0x10], edi
je 0x61b5be43
mov dword [ebx + 0x80], eax
mov dword [ebx + 0x84], edx
xor eax, dword [ebx + 0x70]
xor edx, dword [ebx + 0x74]
mov ecx, dword [ebx + 0x60]
or edx, eax
je 0x61b5be60
mov edx, dword [ebx + 4]
sub ecx, dword [edx + 0x40]
cmp esi, ecx
mov dword [esp + 0x14], ecx
jg 0x61b5be72
cmp dword [edx + 0x5c], 5
ja case.default.0x61b5be3c
mov eax, dword [edx + 0x5c]
jmp dword [eax*4 + 0x61c0f9c0]
mov eax, dword [ebx + 0x84]
test eax, eax
js 0x61b5be90
mov byte [ebx + 0x90], 1
xor eax, eax
add esp, 0x2c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, esi
cdq
cmp edx, dword [ebx + 0x64]
jl 0x61b5c2e8
jle 0x61b5c2e0
mov byte [ebx + 0x6a], 0
mov byte [ebx + 0x90], 1
add esp, 0x2c
pop ebx
xor eax, eax
pop esi
pop edi
pop ebp
ret
mov edx, dword [ebx + 4]
mov ecx, dword [ebx + 0x60]
sub ecx, dword [edx + 0x40]
cmp esi, ecx
mov dword [esp + 0x14], ecx
jle 0x61b5be2f
jmp 0x61b5be72
lea eax, [ebx + 0x104]
mov ecx, edx
mov dword [esp + 0x1c], eax
jmp 0x61b5bf34
mov ecx, dword [ecx + 0x68]
mov eax, dword [ecx]
mov dword [esp], ebp
call dword [eax + 0x1c]
sub esp, 4
test al, al
je 0x61b5befb
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], esi
mov dword [esp + 8], eax
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov eax, dword [ebx + 0x104]
sub esp, 0xc
test eax, eax
jg case.default.0x61b5be3c
cmp byte [ebx + 0x6a], 0
jne 0x61b5c2c5
cmp esi, dword [esp + 0x14]
jge 0x61b5be72
mov eax, dword [ebx + 0xf8]
test eax, eax
je 0x61b5bf2f
mov edx, edi
mov dword [esp + 4], edi
sar edx, 0x1f
mov dword [esp + 8], edx
mov edx, dword [ebx + 0xfc]
mov dword [esp], edx
call eax
test al, al
je 0x61b5bfec
mov ecx, dword [ebx + 4]
mov esi, edi
lea eax, [esi + esi]
lea edi, [esi + 1]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
movzx ebp, word [eax + esi*2]
mov eax, ebp
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c200
cmp ebp, 0xff
jg 0x61b5beb4
mov edx, dword [ecx + 0x70]
mov eax, ebp
and ebp, 7
sar eax, 3
movsx eax, byte [edx + eax]
bt eax, ebp
jb 0x61b5bec6
jmp 0x61b5befb
mov eax, dword [edx + 0x6c]
mov dword [esp + 0x18], eax
lea eax, [ebx + 0x104]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x10]
lea edi, [esi + 1]
lea ebp, [esi + esi]
movzx ecx, word [eax + esi*2]
mov eax, ecx
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c1b5
cmp ecx, dword [esp + 0x18]
je 0x61b5c294
cmp esi, dword [esp + 0x14]
jge 0x61b5be72
mov eax, dword [ebx + 0xf8]
test eax, eax
je 0x61b5c000
mov edx, edi
mov dword [esp + 4], edi
sar edx, 0x1f
mov dword [esp + 8], edx
mov edx, dword [ebx + 0xfc]
mov dword [esp], edx
call eax
test al, al
jne 0x61b5c000
mov dword [ebx + 0x104], 0
add esp, 0x2c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov esi, edi
jmp 0x61b5bf92
mov eax, esi
cdq
cmp edx, dword [ebx + 0x5c]
jl 0x61b5c01b
jg 0x61b5c2d0
cmp esi, dword [ebx + 0x58]
ja 0x61b5c2d0
lea eax, [ebx + 0x104]
mov dword [esp + 4], 0
mov dword [esp], esi
mov ecx, ebx
mov dword [esp + 8], eax
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov eax, dword [ebx + 0x104]
sub esp, 0xc
test eax, eax
jg case.default.0x61b5be3c
movzx eax, byte [ebx + 0x6a]
jmp 0x61b5be56
lea ebp, [ebx + 0x104]
mov esi, esi
lea edi, [edi]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], esi
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov eax, dword [ebx + 0x104]
sub esp, 0xc
test eax, eax
jg case.default.0x61b5be3c
cmp byte [ebx + 0x6a], 0
jne 0x61b5c2c5
cmp esi, dword [esp + 0x14]
jge 0x61b5be4d
mov eax, dword [esp + 0x10]
lea edi, [esi + 1]
lea ecx, [esi + esi]
movzx eax, word [eax + esi*2]
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c250
mov ecx, dword [ebx + 0xf8]
test ecx, ecx
je 0x61b5c0e1
mov eax, edi
mov dword [esp + 4], edi
cdq
mov eax, dword [ebx + 0xfc]
mov dword [esp + 8], edx
mov dword [esp], eax
call ecx
test al, al
je 0x61b5bfec
mov esi, edi
jmp 0x61b5c060
mov ecx, dword [ebx + 0x3c]
mov eax, dword [ebx + 0x38]
mov ebp, esi
sar ebp, 0x1f
xor ecx, ebp
xor eax, esi
or ecx, eax
je 0x61b5c4f9
test byte [edx + 0xc], 1
jne 0x61b5c310
lea ebp, [ebx + 0x104]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0x10]
nop
lea eax, [esi + 0x7fffffff]
lea ecx, [eax + eax]
movzx eax, word [ebp + eax*2]
mov edx, eax
and edx, 0x7f
cmp dx, 0x29
ja 0x61b5c161
movzx edx, ax
lea edi, [edx - 0xa]
cmp edi, 3
jbe 0x61b5c3c1
cmp ax, 0x85
je 0x61b5c3c1
sub edx, 0x2028
cmp edx, 1
jbe 0x61b5c3c1
cmp esi, dword [esp + 0x14]
jge 0x61b5be72
movzx eax, word [ebp + esi*2]
lea edi, [esi + 1]
lea ecx, [esi + esi]
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c450
mov ecx, dword [ebx + 0xf8]
test ecx, ecx
je 0x61b5c1ae
mov eax, edi
mov dword [esp + 4], edi
cdq
mov eax, dword [ebx + 0xfc]
mov dword [esp + 8], edx
mov dword [esp], eax
call ecx
test al, al
je 0x61b5bfec
mov esi, edi
jmp 0x61b5c120
mov eax, edi
cdq
mov eax, dword [ebx + 0x60]
xor edx, dword [ebx + 0x64]
xor eax, edi
or edx, eax
je 0x61b5bfb2
mov eax, dword [esp + 0x10]
movzx eax, word [eax + ebp + 2]
mov edx, eax
and edx, 0xfffffc00
cmp edx, 0xdc00
jne 0x61b5bfb2
shl ecx, 0xa
lea edi, [esi + 2]
lea ecx, [eax + ecx - 0x35fdc00]
jmp 0x61b5bfb2
mov eax, edi
cdq
mov eax, dword [ebx + 0x60]
xor edx, dword [ebx + 0x64]
xor eax, edi
or edx, eax
je 0x61b5bf58
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
movzx eax, word [eax + edx + 2]
mov edx, eax
and edx, 0xfffffc00
cmp edx, 0xdc00
jne 0x61b5bf58
shl ebp, 0xa
lea edi, [esi + 2]
lea ebp, [eax + ebp - 0x35fdc00]
jmp 0x61b5bf58
mov eax, edi
cdq
mov eax, dword [ebx + 0x60]
xor edx, dword [ebx + 0x64]
xor eax, edi
or edx, eax
je 0x61b5c0b9
mov eax, dword [esp + 0x10]
movzx eax, word [eax + ecx + 2]
and eax, 0xfffffc00
cmp eax, 0xdc00
jne 0x61b5c0b9
mov ecx, dword [ebx + 0xf8]
lea edi, [esi + 2]
test ecx, ecx
jne 0x61b5c0c3
mov esi, edi
jmp 0x61b5c060
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], esi
mov dword [esp + 8], eax
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov ebp, dword [ebx + 0x104]
sub esp, 0xc
test ebp, ebp
jg case.default.0x61b5be3c
cmp byte [ebx + 0x6a], 0
je 0x61b5bfbc
mov eax, 1
jmp 0x61b5be56
mov byte [ebx + 0x6a], 0
xor eax, eax
jmp 0x61b5be56
cmp esi, ecx
jae 0x61b5be72
mov eax, dword [esp + 0x10]
lea edi, [esi + 1]
lea ebp, [esi + esi]
movzx eax, word [eax + esi*2]
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c390
mov esi, edi
jmp 0x61b5be21
lea eax, [ebx + 0x104]
mov dword [esp + 0x18], eax
lea esi, [esi]
mov edi, dword [esp + 0x10]
lea eax, [esi + 0x7fffffff]
lea ebp, [eax + eax]
cmp word [edi + eax*2], 0xa
je 0x61b5c490
cmp esi, dword [esp + 0x14]
jge 0x61b5be72
mov eax, dword [esp + 0x10]
lea edi, [esi + 1]
movzx eax, word [eax + ebp + 2]
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c405
mov ecx, dword [ebx + 0xf8]
test ecx, ecx
je 0x61b5c386
mov eax, edi
mov dword [esp + 4], edi
cdq
mov eax, dword [ebx + 0xfc]
mov dword [esp + 8], edx
mov dword [esp], eax
call ecx
test al, al
je 0x61b5bfec
mov esi, edi
jmp 0x61b5c320
mov eax, edi
cdq
mov eax, dword [ebx + 0x18]
xor edx, dword [ebx + 0x1c]
xor eax, edi
or edx, eax
je 0x61b5c306
mov eax, dword [esp + 0x10]
add esi, 2
movzx eax, word [eax + ebp + 2]
and eax, 0xfffffc00
cmp eax, 0xdc00
cmovne esi, edi
jmp 0x61b5be21
cmp ax, 0xd
je 0x61b5c4d0
mov eax, dword [esp + 0x18]
mov dword [esp + 4], 0
mov ecx, ebx
mov dword [esp], esi
mov dword [esp + 8], eax
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov edx, dword [ebx + 0x104]
sub esp, 0xc
test edx, edx
jg case.default.0x61b5be3c
cmp byte [ebx + 0x6a], 0
je 0x61b5c161
jmp 0x61b5c2c5
mov eax, edi
cdq
mov eax, dword [ebx + 0x60]
xor edx, dword [ebx + 0x64]
xor eax, edi
or edx, eax
je 0x61b5c35e
mov eax, dword [esp + 0x10]
movzx eax, word [eax + ebp + 4]
and eax, 0xfffffc00
cmp eax, 0xdc00
jne 0x61b5c35e
mov ecx, dword [ebx + 0xf8]
lea edi, [esi + 2]
test ecx, ecx
jne 0x61b5c368
mov esi, edi
jmp 0x61b5c320
mov eax, edi
cdq
mov eax, dword [ebx + 0x60]
xor edx, dword [ebx + 0x64]
xor eax, edi
or edx, eax
je 0x61b5c186
movzx eax, word [ebp + ecx + 2]
and eax, 0xfffffc00
cmp eax, 0xdc00
jne 0x61b5c186
mov ecx, dword [ebx + 0xf8]
lea edi, [esi + 2]
test ecx, ecx
jne 0x61b5c190
mov esi, edi
jmp 0x61b5c120
mov eax, dword [esp + 0x18]
mov ecx, ebx
mov dword [esp + 4], 0
mov dword [esp], esi
mov dword [esp + 8], eax
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov ecx, dword [ebx + 0x104]
sub esp, 0xc
test ecx, ecx
jg case.default.0x61b5be3c
cmp byte [ebx + 0x6a], 0
je 0x61b5c338
jmp 0x61b5c2c5
mov eax, esi
cdq
cmp edx, dword [ebx + 0x64]
jg 0x61b5c3cb
jl 0x61b5c4e7
cmp esi, dword [ebx + 0x60]
jae 0x61b5c3cb
xor eax, eax
cmp word [ebp + ecx + 2], 0xa
sete al
add esi, eax
jmp 0x61b5c3cb
lea eax, [ebx + 0x104]
mov dword [esp + 4], 0
mov dword [esp], esi
mov ecx, ebx
mov dword [esp + 8], eax
call method.icu_53::RegexMatcher.MatchChunkAt_int__signed_char__UErrorCode_
mov edi, dword [ebx + 0x104]
sub esp, 0xc
test edi, edi
jg case.default.0x61b5be3c
cmp byte [ebx + 0x6a], 0
jne 0x61b5c2c5
mov eax, dword [esp + 0x10]
lea ecx, [esi + 1]
lea edi, [esi + esi]
movzx eax, word [eax + esi*2]
and eax, 0xfffffc00
cmp eax, 0xd800
je 0x61b5c554
mov edx, dword [ebx + 4]
mov esi, ecx
jmp 0x61b5c107
mov eax, ecx
cdq
cmp edx, dword [ebx + 0x64]
je 0x61b5c57c
mov eax, dword [esp + 0x10]
movzx eax, word [eax + edi + 2]
and eax, 0xfffffc00
cmp eax, 0xdc00
jne 0x61b5c54a
add esi, 2
mov edx, dword [ebx + 4]
jmp 0x61b5c107
cmp ecx, dword [ebx + 0x60]
jne 0x61b5c55c
jmp 0x61b5c54a