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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov eax, dword [esp + 0x70]
cmp dword [esp + 0x78], 0xb
mov ebp, dword [esp + 0x74]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x30], eax
ja 0x61ac40c3
mov eax, dword [ecx]
mov esi, dword [esp + 0x78]
mov eax, dword [eax + 0x54]
test esi, esi
mov dword [esp + 0x34], eax
je 0x61ac4020
mov eax, dword [esp + 0x78]
mov esi, ebp
lea edi, [eax - 1]
xor eax, eax
and esi, 3
je 0x61ac3e15
movsx eax, byte [edi + eax + sym.icuin53.dll_icu_53::Grego::MONTH_LENGTH]
mov byte [esp + 0x40], al
mov dword [esp + 0x3c], eax
xor eax, eax
test esi, esi
jne 0x61ac3ddb
mov eax, ebp
mov edx, 0x51eb851f
mov edi, ebp
imul edx
sar edi, 0x1f
mov eax, edx
sar eax, 5
sub eax, edi
imul eax, eax, 0x64
mov ebx, eax
mov eax, 0xc
cmp ebp, ebx
jne 0x61ac3ddb
sar edx, 7
sub edx, edi
imul edx, edx, 0x190
cmp ebp, edx
cmovne eax, esi
mov edi, dword [esp + 0x78]
cmp dword [esp + 0x34], 0x61ac4120
movsx esi, byte [eax + edi + sym.icuin53.dll_icu_53::Grego::MONTH_LENGTH]
movzx edi, byte [esp + 0x30]
mov edx, esi
jne 0x61ac4070
mov ebx, dword [esp + 0x8c]
xor eax, eax
mov ebx, dword [ebx]
test ebx, ebx
jle 0x61ac3e50
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
mov eax, ebp
mov edx, 0x51eb851f
mov ebx, ebp
imul edx
sar ebx, 0x1f
mov dword [esp + 0x3c], ebx
mov eax, edx
sar eax, 5
sub eax, ebx
mov ebx, ebp
imul eax, eax, 0x64
sub ebx, eax
mov eax, ebx
je 0x61ac4040
mov eax, 0xc
jmp 0x61ac3d92
cmp byte [esp + 0x38], 1
ja 0x61ac40c3
mov eax, dword [esp + 0x7c]
test eax, eax
jle 0x61ac40c3
cmp esi, dword [esp + 0x7c]
jl 0x61ac40c3
movzx eax, byte [esp + 0x30]
sub eax, 1
cmp al, 6
ja 0x61ac40c3
cmp dword [esp + 0x84], 0x5265bff
ja 0x61ac40c3
sub edx, 0x1c
cmp dl, 3
ja 0x61ac40c3
movzx eax, byte [esp + 0x40]
sub eax, 0x1c
cmp al, 3
ja 0x61ac40c3
cmp byte [ecx + 0x44], 0
mov eax, dword [ecx + 0x40]
mov ebx, eax
mov dword [esp + 0x30], eax
je 0x61ac3e0b
cmp ebp, dword [ecx + 0x3c]
jl 0x61ac4063
test byte [esp + 0x38], 1
je 0x61ac4063
movzx edx, byte [ecx + 0x34]
movsx eax, byte [ecx + 0x24]
movsx ebp, byte [ecx + 0x25]
mov dword [esp + 0x38], ecx
cmp al, dl
mov byte [esp + 0x40], dl
movsx edx, byte [ecx + 0x26]
setg byte [esp + 0x34]
neg ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x24], edx
cmp dword [ecx + 0x2c], 2
mov edx, 0
cmove edx, ebx
mov ebx, dword [ecx + 0x28]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], ebx
mov ebx, dword [ecx + 0x48]
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x10], edi
mov dword [esp + 4], esi
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
call method.icu_53::SimpleTimeZone.compareToRule_signed_char__signed_char__signed_char__signed_char__signed_char__int__int__icu_53::SimpleTimeZone::EMode__signed_char__signed_char__signed_char__int_
not eax
mov ecx, dword [esp + 0x38]
shr eax, 0x1f
cmp byte [esp + 0x34], al
mov dword [esp + 0x44], eax
je 0x61ac405c
movsx eax, byte [esp + 0x40]
movsx ebx, byte [ecx + 0x36]
mov edx, dword [ecx + 0x38]
movsx ebp, byte [ecx + 0x35]
mov dword [esp + 0x40], eax
mov eax, dword [ecx + 0x4c]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], eax
mov eax, dword [ecx + 0x30]
test eax, eax
jne 0x61ac4100
mov eax, dword [ecx + 0x50]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x28], ebp
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], edi
mov dword [esp + 4], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x1c], ecx
mov dword [esp], eax
call method.icu_53::SimpleTimeZone.compareToRule_signed_char__signed_char__signed_char__signed_char__signed_char__int__int__icu_53::SimpleTimeZone::EMode__signed_char__signed_char__signed_char__int_
shr eax, 0x1f
cmp byte [esp + 0x34], 0
mov ecx, dword [esp + 0x4c]
je 0x61ac40e0
test al, al
jne 0x61ac4013
cmp byte [esp + 0x44], 0
mov eax, dword [esp + 0x30]
je 0x61ac3e0b
mov eax, dword [esp + 0x30]
add eax, dword [ecx + 0x50]
jmp 0x61ac3e0b
mov esi, ebp
mov dword [esp + 0x3c], 0x1f
mov byte [esp + 0x40], 0x1f
and esi, 3
jmp 0x61ac3da2
sar edx, 7
sub edx, dword [esp + 0x3c]
imul edx, edx, 0x190
cmp ebp, edx
mov edx, 0xc
cmove eax, edx
jmp 0x61ac3d92
cmp byte [esp + 0x34], 0
jne 0x61ac4013
mov eax, dword [esp + 0x30]
jmp 0x61ac3e0b
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x18], esi
mov dword [esp + 0x10], edi
mov dword [esp + 4], ebp
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
movzx eax, byte [esp + 0x38]
mov dword [esp], eax
call dword [esp + 0x34]
sub esp, 0x24
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
mov eax, dword [esp + 0x8c]
mov dword [eax], 1
add esp, 0x5c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret 0x20
test al, al
je 0x61ac4063
cmp byte [esp + 0x44], 0
jne 0x61ac4013
jmp 0x61ac4063
cmp eax, 2
mov eax, 0
cmove eax, dword [esp + 0x4c]
jmp 0x61ac3f97