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

Disassembly:
push ebp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x4c
mov eax, dword [esp + 0x60]
lea ecx, [eax - 5]
cmp ecx, 0x10
ja 0x61aba0c0
mov edx, 1
mov eax, edx
shl eax, cl
test eax, 0x1aff4
jne 0x61aba2a0
test al, 2
jne 0x61aba1d5
test al, 1
je 0x61aba0c0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], 0
mov esi, dword [eax]
test esi, esi
jg 0x61aba184
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
test eax, eax
mov esi, eax
je 0x61aba659
mov edi, dword [esp + 0x64]
mov byte [eax + 0xe8], 1
mov ecx, esi
mov eax, dword [eax]
mov dword [esp + 4], 0
mov dword [esp + 8], edi
mov edi, dword [esp + 0x60]
mov dword [esp], edi
call dword [eax + 0x78]
mov eax, dword [ebx]
sub esp, 0xc
mov edi, dword [eax + 0x88]
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
test ecx, ecx
jle 0x61aba786
xor ebp, ebp
xor edx, edx
cmp edi, method.icu_53::Calendar.handleGetMonthLength_int__int__const
jne 0x61aba771
mov eax, dword [ebx]
lea ecx, [ebp + 1]
mov dword [esp], edx
mov dword [esp + 0x18], edx
mov dword [esp + 8], 1
mov dword [esp + 4], ecx
mov ecx, ebx
call dword [eax + 0x84]
sub esp, 0xc
mov edi, eax
mov eax, dword [ebx]
mov edx, dword [esp + 0x18]
mov dword [esp + 8], 1
mov ecx, ebx
mov dword [esp + 4], ebp
mov dword [esp], edx
call dword [eax + 0x84]
sub esp, 0xc
sub edi, eax
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [esp + 0x1c], edi
jmp 0x61aba184
mov edx, dword [ebx]
mov eax, dword [edx + 0x40]
cmp eax, method.icu_53::Calendar.getMaximum_UCalendarDateFields__const
jne 0x61aba301
mov eax, dword [edx + 0x80]
cmp eax, method.icu_53::Calendar.getLimit_UCalendarDateFields__icu_53::Calendar::ELimitType__const
jne 0x61aba361
mov eax, dword [esp + 0x60]
lea ecx, [eax - 4]
cmp ecx, 0x12
jbe 0x61aba1b2
mov dword [esp + 4], 3
mov dword [esp], eax
mov ecx, ebx
call dword [edx + 0x7c]
mov edx, dword [ebx]
sub esp, 8
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x50]
cmp eax, method.icu_53::Calendar.getLeastMaximum_UCalendarDateFields__const
jne 0x61aba323
mov eax, dword [edx + 0x80]
cmp eax, method.icu_53::Calendar.getLimit_UCalendarDateFields__icu_53::Calendar::ELimitType__const
jne 0x61aba340
mov eax, dword [esp + 0x60]
lea ecx, [eax - 4]
cmp ecx, 0x12
jbe 0x61aba192
mov dword [esp + 4], 2
mov dword [esp], eax
mov ecx, ebx
call dword [edx + 0x7c]
sub esp, 8
mov edi, eax
mov dword [esp + 0x20], eax
cmp dword [esp + 0x1c], edi
je 0x61aba184
setg byte [esp + 0x27]
movzx eax, byte [esp + 0x27]
setle dl
movzx edx, dl
mov esi, edx
lea eax, [eax + eax - 1]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
mov edi, dword [eax]
test edi, edi
jle 0x61aba382
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
add esp, 0x4c
pop ebx
pop esi
pop edi
pop ebp
ret 8
mov eax, 1
shl eax, cl
test eax, 0x75fe8
jne 0x61aba445
test al, 1
jne 0x61aba480
mov eax, dword [esp + 0x60]
jmp 0x61aba135
mov eax, 1
shl eax, cl
test eax, 0x75fe8
jne 0x61aba460
test al, 1
jne 0x61aba4c1
mov eax, dword [esp + 0x60]
jmp 0x61aba0f1
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], 0
mov ecx, dword [eax]
test ecx, ecx
jg 0x61aba184
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
test eax, eax
mov esi, eax
je 0x61aba659
mov edi, dword [esp + 0x64]
mov byte [eax + 0xe8], 1
mov ecx, esi
mov eax, dword [eax]
mov dword [esp + 4], 0
mov dword [esp + 8], edi
mov edi, dword [esp + 0x60]
mov dword [esp], edi
call dword [eax + 0x78]
mov eax, dword [ebx]
sub esp, 0xc
mov edi, dword [eax + 0x8c]
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
test edx, edx
jle 0x61aba542
xor ebp, ebp
cmp edi, method.icu_53::Calendar.handleGetYearLength_int__const
jne 0x61aba73e
mov eax, dword [ebx]
lea edx, [ebp + 1]
mov ecx, ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edx
call dword [eax + 0x84]
mov edi, eax
mov eax, dword [ebx]
sub esp, 0xc
mov ecx, ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], ebp
call dword [eax + 0x84]
sub edi, eax
sub esp, 0xc
mov ebx, edi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov dword [esp + 0x1c], ebx
jmp 0x61aba184
mov eax, dword [ebx]
mov esi, dword [eax + 0x40]
cmp esi, method.icu_53::Calendar.getMaximum_UCalendarDateFields__const
jne 0x61aba565
mov esi, dword [eax + 0x80]
cmp esi, method.icu_53::Calendar.getLimit_UCalendarDateFields__icu_53::Calendar::ELimitType__const
jne 0x61aba57c
mov edi, dword [esp + 0x60]
lea ecx, [edi - 4]
shl edx, cl
test edx, 0x75fe8
jne 0x61aba5dd
and edx, 1
jne 0x61aba503
mov edi, dword [esp + 0x60]
mov dword [esp + 4], 3
mov ecx, ebx
mov dword [esp], edi
call dword [eax + 0x7c]
sub esp, 8
mov dword [esp + 0x1c], eax
jmp 0x61aba184
mov edi, dword [esp + 0x60]
mov ecx, ebx
mov dword [esp], edi
call eax
mov edx, dword [ebx]
sub esp, 4
mov dword [esp + 0x1c], eax
mov eax, dword [edx + 0x50]
cmp eax, method.icu_53::Calendar.getLeastMaximum_UCalendarDateFields__const
je 0x61aba118
mov edi, dword [esp + 0x60]
mov ecx, ebx
mov dword [esp], edi
call eax
sub esp, 4
mov edi, eax
mov dword [esp + 0x20], eax
jmp 0x61aba14e
mov edi, dword [esp + 0x60]
mov dword [esp + 4], 2
mov ecx, ebx
mov dword [esp], edi
call eax
sub esp, 8
mov edi, eax
mov dword [esp + 0x20], eax
jmp 0x61aba14e
mov edi, dword [esp + 0x60]
mov dword [esp + 4], 3
mov ecx, ebx
mov dword [esp], edi
call eax
sub esp, 8
mov edx, dword [ebx]
mov dword [esp + 0x1c], eax
jmp 0x61aba10a
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0xc]
mov ebp, eax
mov eax, dword [esp + 0x64]
test ebp, ebp
je 0x61aba5ca
mov dword [esp], eax
mov ecx, ebp
call method.icu_53::Calendar.complete_UErrorCode_
sub esp, 4
mov byte [ebp + 0xe8], 1
mov eax, dword [ebp]
mov edi, dword [esp + 0x64]
mov dword [esp + 4], esi
mov ecx, ebp
mov dword [esp + 8], edi
mov edi, dword [esp + 0x60]
mov dword [esp], edi
call dword [eax + 0x78]
sub esp, 0xc
cmp byte [ebp + 7], 0
jne 0x61aba59b
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x20]
lea eax, [ebp + eax*4]
mov dword [eax + 8], edi
mov edx, dword [ebp + 0xd8]
mov dword [esp + 0x2c], eax
cmp edx, 0x2710
je 0x61aba5f1
lea eax, [edx + 1]
mov dword [ebp + 0xd8], eax
mov eax, dword [esp + 0x2c]
mov dword [eax + 0x7c], edx
mov eax, dword [esp + 0x60]
mov byte [ebp + eax + 0x64], 1
mov eax, dword [esp + 0x64]
mov byte [ebp + 7], 0
mov byte [ebp + 5], 0
mov byte [ebp + 4], 0
mov ebx, dword [eax]
test ebx, ebx
jle 0x61aba670
nop
lea esi, [esi]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 4]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jmp 0x61aba184
mov eax, dword [esp + 0x60]
shl eax, 4
mov eax, dword [eax + 0x61c08308]
mov dword [esp + 0x20], eax
mov edi, eax
jmp 0x61aba14e
mov eax, dword [esp + 0x60]
shl eax, 4
mov eax, dword [eax + 0x61c0830c]
mov dword [esp + 0x1c], eax
jmp 0x61aba10a
movzx esi, byte [ebx + 0xfc]
mov ecx, ebx
mov dword [esp + 4], 2
mov dword [esp], 5
call dword [edx + 0x7c]
mov edx, 0x92492493
sub esp, 8
sub eax, esi
lea ecx, [eax + 7]
mov eax, ecx
imul edx
add edx, ecx
sar ecx, 0x1f
sar edx, 2
sub edx, ecx
mov dword [esp + 0x20], edx
mov edi, edx
jmp 0x61aba14e
movzx esi, byte [ebx + 0xfc]
mov ecx, ebx
mov dword [esp + 4], 3
mov dword [esp], 5
call dword [edx + 0x7c]
mov edx, 0x92492493
sub esp, 8
sub eax, esi
lea ecx, [eax + 0xd]
mov eax, ecx
imul edx
lea eax, [edx + ecx]
sar ecx, 0x1f
mov edx, dword [ebx]
sar eax, 2
sub eax, ecx
mov dword [esp + 0x1c], eax
jmp 0x61aba10a
movzx esi, byte [ebx + 0xfc]
mov ecx, ebx
mov dword [esp + 4], 3
mov dword [esp], 5
call dword [eax + 0x7c]
mov edx, 0x92492493
sub esp, 8
sub eax, esi
lea ecx, [eax + 0xd]
mov eax, ecx
imul edx
add edx, ecx
sar ecx, 0x1f
sar edx, 2
sub edx, ecx
mov dword [esp + 0x1c], edx
jmp 0x61aba184
mov dword [esp], eax
mov ecx, esi
call method.icu_53::Calendar.complete_UErrorCode_
sub esp, 4
mov eax, dword [esp + 0x64]
mov ebp, dword [eax]
test ebp, ebp
jg 0x61aba236
mov ebp, dword [esi + 0x54]
jmp 0x61aba238
mov eax, dword [esp + 0x60]
mov ecx, ebx
mov dword [esp], eax
call esi
sub esp, 4
mov dword [esp + 0x1c], eax
jmp 0x61aba184
mov eax, dword [esp + 0x60]
mov dword [esp + 4], 3
mov ecx, ebx
mov dword [esp], eax
call esi
sub esp, 8
mov dword [esp + 0x1c], eax
jmp 0x61aba184
mov eax, dword [ebp]
mov dword [esp + 0x3c], 0
mov eax, dword [eax + 0x74]
cmp eax, method.icu_53::Calendar.computeFields_UErrorCode_
jne 0x61aba75e
lea eax, [esp + 0x3c]
mov ecx, ebp
mov dword [esp], eax
call method.icu_53::Calendar.computeFields_UErrorCode___clone_.part.21_
sub esp, 4
jmp 0x61aba3d3
mov dword [eax], 7
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
jmp 0x61aba184
mov eax, edi
shl eax, 4
mov eax, dword [eax + 0x61c0830c]
mov dword [esp + 0x1c], eax
jmp 0x61aba184
mov dword [ebp + 0xd8], 1
mov dword [esp + 0x18], 1
mov edi, 0xffffffff
mov esi, 0x2710
xor ecx, ecx
nop
mov edx, dword [ebp + ecx*4 + 0x7c]
cmp dword [esp + 0x18], edx
setl bl
cmp esi, edx
setg al
and al, bl
cmovne edi, ecx
cmovne esi, edx
add ecx, 1
cmp ecx, 0x17
jne 0x61aba610
cmp edi, 0xffffffff
je 0x61aba64d
add dword [esp + 0x18], 1
mov eax, dword [esp + 0x18]
cmp eax, 0x18
mov dword [ebp + 0xd8], eax
mov dword [ebp + edi*4 + 0x7c], eax
jne 0x61aba603
mov edx, dword [esp + 0x18]
add edx, 1
jmp 0x61aba3f8
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], 0
mov dword [eax], 7
jmp 0x61aba184
mov dword [esp], eax
mov ecx, ebp
call method.icu_53::Calendar.complete_UErrorCode_
sub esp, 4
mov eax, dword [esp + 0x64]
mov ecx, dword [eax]
test ecx, ecx
jg 0x61aba430
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
cmp edi, dword [eax + 8]
je 0x61aba74f
cmp byte [esp + 0x27], 0
je 0x61aba6ae
cmp dword [esp + 0x60], 4
jne 0x61aba430
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x64]
lea esi, [esi]
mov edx, dword [ebp]
lea esi, [eax + ebx]
mov dword [esp + 0x18], eax
mov ecx, ebp
mov edx, dword [edx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 8], edi
cmp edx, fcn.61ab9380
mov dword [esp], eax
jne 0x61aba701
call fcn.61ab83b0
sub esp, 0xc
mov eax, dword [esp + 0x18]
mov edx, dword [edi]
test edx, edx
jle 0x61aba710
mov dword [esp + 0x20], ebx
jmp 0x61aba430
call edx
sub esp, 0xc
mov eax, dword [esp + 0x18]
jmp 0x61aba6f2
mov dword [esp], edi
mov ecx, ebp
mov dword [esp + 0x18], eax
call method.icu_53::Calendar.complete_UErrorCode_
mov eax, dword [edi]
sub esp, 4
test eax, eax
jg 0x61aba6f8
mov eax, dword [esp + 0x2c]
cmp esi, dword [eax + 8]
jne 0x61aba6f8
cmp dword [esp + 0x1c], esi
mov ebx, esi
mov eax, dword [esp + 0x18]
jne 0x61aba6c0
jmp 0x61aba6f8
mov ecx, ebx
mov dword [esp], ebp
call edi
sub esp, 4
mov ebx, eax
jmp 0x61aba28d
mov ebx, edi
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x64]
jmp 0x61aba6c0
lea edx, [esp + 0x3c]
mov ecx, ebp
mov dword [esp], edx
call eax
sub esp, 4
jmp 0x61aba3d3
mov dword [esp + 4], ebp
mov dword [esp], edx
mov ecx, ebx
call edi
sub esp, 8
mov edi, eax
jmp 0x61aba0a9
mov dword [esp], eax
mov ecx, esi
call method.icu_53::Calendar.complete_UErrorCode_
sub esp, 4
mov eax, dword [esp + 0x64]
mov edx, dword [eax]
test edx, edx
jg 0x61aba052
mov ebp, dword [esi + 0x10]
mov ecx, esi
mov dword [esp], eax
call method.icu_53::Calendar.complete_UErrorCode_
sub esp, 4
mov eax, dword [esp + 0x64]
mov eax, dword [eax]
test eax, eax
jg 0x61aba7c3
mov edx, dword [esi + 0x54]
jmp 0x61aba056
xor edx, edx
jmp 0x61aba056