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

Disassembly:
jmp 0x4a975f9d
push 0xffffffffffffffff
push 0x4a9f98a0
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
mov eax, dword [0x4aa98440]
xor eax, esp
mov dword [esp + 0xd8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4aa98440]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov esi, dword [esp + 0x124]
mov eax, dword [esp + 0x10c]
mov ebp, dword [esp + 0x108]
mov ebx, dword [esp + 0x118]
cmp dword [esi], 0
mov edi, dword [esp + 0x11c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x34], esi
jg 0x4a97657f
mov eax, dword [esp + 0x120]
test eax, eax
js 0x4a976579
jle 0x4a97603c
test edi, edi
je 0x4a976579
lea ecx, [esp + 0x78]
call dword [sym.imp.icuuc58.dll_public:_void___thiscall_icu_58::UnicodeSet::constructor_void_]
mov eax, dword [ebp + 0x34]
xor edx, edx
mov ecx, dword [ebp + 0x10]
neg eax
mov dword [esp + 0xf8], edx
sbb eax, eax
mov dword [esp + 0x20], ecx
and eax, 0x20000
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], eax
cmp byte [esp + 0x100], dl
je 0x4a976092
push dword [ebp + 0x30]
lea ecx, [esp + 0x7c]
mov dword [esp + 0x1c], 0x14
mov byte [esp + 0x1b], 1
call dword [sym.imp.icuuc58.dll_public:_class_icu_58::UnicodeSet____thiscall_icu_58::UnicodeSet::operator_class_icu_58::UnicodeSet_const__]
jmp 0x4a976114
test ecx, ecx
jne 0x4a9760b5
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x17], dl
mov esi, dword [eax + 0x30]
neg esi
sbb esi, esi
and esi, 6
add esi, 2
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x34]
jmp 0x4a97611b
mov byte [esp + 0x17], 1
mov dword [esp + 0x18], 0xd
cmp dword [ebp + 0x28], edx
je 0x4a9760cf
mov dword [esp + 0x18], 0xf
push dword [ebp + 0x30]
lea ecx, [esp + 0x7c]
call dword [sym.imp.icuuc58.dll_public_virtual:_class_icu_58::UnicodeSet____thiscall_icu_58::UnicodeSet::addAll_class_icu_58::UnicodeSet_const__]
mov ecx, dword [esp + 0x20]
mov edx, dword [eax]
push dword [ecx + 0x30]
mov ecx, eax
call dword [edx + 0x44]
lea ecx, [esp + 0x78]
call dword [sym.imp.icuuc58.dll_public_virtual:_signed_char___thiscall_icu_58::UnicodeSet::isEmpty_void_const]
test al, al
jne 0x4a976100
mov dword [esp + 0x18], 0x10
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp + 0x34]
cmp eax, dword [ecx + 0x34]
je 0x4a97611b
mov dword [esp + 0x18], 0x11
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x38], eax
push esi
lea ecx, [esp + 0x50]
call dword [sym.imp.icuuc58.dll_public:_void___thiscall_icu_58::UVector32::constructor_enum_UErrorCode__]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0xf8], 1
cmp dword [eax + 0x1c], 0
mov ecx, dword [eax + 0x2c]
mov edx, dword [eax + 0x30]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], edx
je 0x4a9761c0
push dword [eax + 0x1c]
call sym.icuin58.dll_public:_static_signed_char___cdecl_icu_58::CollationSettings::reorderTableHasSplitBytes_unsigned_char_const__const_
pop ecx
test al, al
je 0x4a9761bc
push esi
lea eax, [esp + 0x50]
mov ecx, ebp
push eax
push dword [esp + 0x24]
push dword [esp + 0x3c]
call sym.icuin58.dll_public:_void___thiscall_icu_58::CollationData::makeReorderRanges_int_const___int__class_icu_58::UVector32___enum_UErrorCode__const
and dword [esp + 0x24], 0
cmp dword [esp + 0x1c], 0
jle 0x4a9761a1
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x30]
push esi
push edi
push dword [ebp + edi*4]
lea ecx, [esp + 0x58]
call dword [sym.imp.icuuc58.dll_public:_void___thiscall_icu_58::UVector32::insertElementAt_int__int__enum_UErrorCode__]
inc edi
cmp edi, ebx
jl 0x4a976180
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
cmp dword [esi], 0
jg 0x4a9763d9
mov eax, dword [esp + 0x5c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edx
jmp 0x4a9761c0
mov edx, dword [esp + 0x1c]
cmp byte [esp + 0x100], 0
je 0x4a9761db
and dword [esp + 0x24], 0
mov edx, dword [esp + 0x120]
jmp 0x4a97627a
cmp byte [esp + 0x17], 0
lea edi, [esp + 0x64]
mov eax, dword [esp + 0x104]
mov esi, 0x4aa123e8
push 5
pop ecx
mov word [esp + 0x62], 0x27da
mov eax, dword [eax]
rep movsd dword es:[edi], dword [esi]
push 0x18
pop esi
mov dword [esp + 0x74], eax
mov dword [esp + 0x24], esi
je 0x4a976229
cmp dword [ebp + 0x24], 0
je 0x4a976229
mov eax, dword [esp + 0x18]
add eax, edx
lea eax, [eax*4 + 0x18]
test al, 7
je 0x4a976229
push 0x1c
pop esi
mov dword [esp + 0x24], esi
mov word [esp + 0x60], si
cmp esi, dword [esp + 0x120]
jg 0x4a97626b
mov edi, dword [esp + 0x28]
lea esi, [esp + 0x60]
push 6
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
lea eax, [esi - 0x18]
push eax
lea eax, [edi + 0x18]
push 0
push eax
call sub.MSVCR120.dll_memset
mov edx, dword [esp + 0x12c]
add esp, 0xc
add edi, esi
sub edx, esi
jmp 0x4a97626f
xor edi, edi
xor edx, edx
mov dword [esp + 0x120], edx
mov dword [esp + 0x28], edi
mov ecx, dword [esp + 0x18]
mov esi, ecx
mov eax, dword [esp + 0x2c]
mov dword [ebx], ecx
mov cl, byte [esp + 0x17]
shl esi, 2
mov eax, dword [eax + 0x14]
or eax, dword [ebp + 0x1c]
or eax, dword [esp + 0x3c]
and dword [ebx + 8], 0
and dword [ebx + 0xc], 0
mov dword [ebx + 4], eax
mov dword [esp + 0x18], esi
test cl, cl
je 0x4a9762d2
cmp byte [esp + 0x100], 0
jne 0x4a9762c4
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 0x14]
cmp eax, dword [esi + 0x14]
mov esi, dword [esp + 0x18]
je 0x4a9762d2
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp + 4]
sar eax, 2
mov dword [ebx + 0x10], eax
jmp 0x4a9762d6
or dword [ebx + 0x10], 0xffffffff
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x14], esi
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x18], esi
cmp dword [eax + 0x1c], 0
je 0x4a9762f3
add esi, 0x100
mov dword [ebx + 0x1c], esi
test cl, cl
je 0x4a97633a
xor ecx, ecx
lea eax, [esp + 0x20]
mov dword [esp + 0x20], ecx
push eax
cmp esi, edx
jge 0x4a976314
mov eax, edx
sub eax, esi
push eax
lea eax, [edi + esi]
push eax
jmp 0x4a976316
push ecx
push ecx
push dword [ebp]
call sub.icuuc58.dll_utrie2_serialize_58
mov ecx, eax
add esp, 0x10
mov eax, dword [esp + 0x20]
test eax, eax
jle 0x4a976334
cmp eax, 0xf
jne 0x4a9763d3
add esi, ecx
mov cl, byte [esp + 0x17]
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], esi
test cl, cl
je 0x4a97634e
mov eax, dword [ebp + 0x24]
test eax, eax
je 0x4a97634e
lea esi, [esi + eax*8]
mov dword [ebx + 0x28], esi
mov dword [ebx + 0x2c], esi
test cl, cl
je 0x4a97635e
mov eax, dword [ebp + 0x20]
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x114]
mov dword [ebx + 0x30], esi
lea esi, [esi + eax*4]
mov dword [ebx + 0x34], esi
test cl, cl
je 0x4a976378
mov eax, dword [ebp + 0x28]
lea esi, [esi + eax*2]
mov dword [ebx + 0x38], esi
test cl, cl
je 0x4a9763e3
lea ecx, [esp + 0x78]
call dword [sym.imp.icuuc58.dll_public_virtual:_signed_char___thiscall_icu_58::UnicodeSet::isEmpty_void_const]
test al, al
jne 0x4a9763e3
mov eax, dword [esp + 0x120]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp esi, eax
jge 0x4a9763b0
lea edx, [esp + 0x1c]
sub eax, esi
push edx
cdq
lea ecx, [edi + esi]
sub eax, edx
sar eax, 1
push eax
jmp 0x4a9763b6
lea eax, [esp + 0x1c]
push eax
push ecx
push ecx
lea ecx, [esp + 0x84]
call dword [sym.imp.icuuc58.dll_public:_int___thiscall_icu_58::UnicodeSet::serialize_unsigned_short_int___int__enum_UErrorCode__const]
mov ecx, eax
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x4a9763e0
cmp eax, 0xf
je 0x4a9763e0
mov ecx, dword [esp + 0x34]
mov dword [ecx], eax
xor esi, esi
jmp 0x4a976551
lea esi, [esi + ecx*2]
mov eax, dword [esp + 0x38]
mov dword [ebx + 0x3c], esi
push 2
lea edi, [esi + eax*2]
mov eax, dword [sym.imp.icuuc58.dll_const_icu_58::UnicodeString::vftable]
mov dword [esp + 0xb0], eax
pop eax
mov word [esp + 0xb0], ax
mov byte [esp + 0xf8], al
mov al, byte [esp + 0x100]
mov dword [ebx + 0x40], edi
test al, al
je 0x4a976476
movzx eax, word [ebp + 0x3c]
lea ecx, [esp + 0xac]
mov esi, dword [sym.imp.icuuc58.dll_private:_class_icu_58::UnicodeString____thiscall_icu_58::UnicodeString::doAppend_wchar_t_const___int__int_]
push 1
mov dword [esp + 0x40], eax
lea eax, [esp + 0x40]
push 0
push eax
call esi
mov eax, dword [ebp + 0x3c]
lea ecx, [esp + 0xac]
add eax, 0x10
push eax
push 0
push dword [ebp + 0x40]
call esi
push dword [ebp + 0x48]
lea ecx, [esp + 0xb0]
push 0
push dword [ebp + 0x44]
call esi
lea ecx, [esp + 0xac]
call dword [sym.imp.icuuc58.dll_public:_int___thiscall_icu_58::UnicodeString::length_void_const]
lea edi, [edi + eax*2]
mov al, byte [esp + 0x100]
mov dword [ebx + 0x44], edi
test al, al
je 0x4a976483
add edi, 0x100
mov dword [ebx + 0x48], edi
mov dword [ebx + 0x4c], edi
cmp edi, dword [esp + 0x120]
jle 0x4a9764a1
mov ecx, dword [esp + 0x34]
mov dword [ecx], 0xf
jmp 0x4a976536
push dword [esp + 0x18]
mov esi, dword [esp + 0x2c]
push ebx
push esi
call sub.MSVCR120.dll_memcpy
push esi
push dword [esp + 0x40]
push 5
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
mov eax, dword [esp + 0x48]
push esi
push dword [eax + 0x1c]
push 6
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
push esi
push dword [ebp + 8]
push 9
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
push esi
push dword [ebp + 4]
push 0xb
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
add esp, 0x4c
push esi
push dword [esp + 0x4c]
push 0xc
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
push esi
push dword [ebp + 0xc]
push 0xd
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
push esi
push dword [ebp + 0x34]
push 0xf
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
add esp, 0x30
lea ecx, [esp + 0xac]
push esi
call dword [sym.imp.icuuc58.dll_public:_wchar_t_const____thiscall_icu_58::UnicodeString::getBuffer_void_const]
push eax
push 0x10
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
push esi
push dword [ebp + 0x2c]
push 0x11
push ebx
call sym.icuin58.dll_private:_static_void___cdecl_icu_58::CollationDataWriter::copyData_int_const__const__int__void_const___unsigned_char__
add esp, 0x20
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0xac]
add esi, edi
mov byte [esp + 0xf8], 1
call dword [sym.imp.icuuc58.dll_public_virtual:_void___thiscall_icu_58::UnicodeString::destructor_void_]
lea ecx, [esp + 0x4c]
mov byte [esp + 0xf8], 0
call dword [sym.imp.icuuc58.dll_public_virtual:_void___thiscall_icu_58::UVector32::destructor_void_]
or dword [esp + 0xf8], 0xffffffff
lea ecx, [esp + 0x78]
call dword [sym.imp.icuuc58.dll_public_virtual:_void___thiscall_icu_58::UnicodeSet::destructor_void_]
mov eax, esi
jmp 0x4a976581
mov dword [esi], 1
xor eax, eax
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xd8]
xor ecx, esp
call fcn.4a9ebf20
add esp, 0xe8
ret