Function at 0x597782
Capabilities:
Link many functions at runtime

Disassembly:
push ebp
mov ebp, esp
mov edx, dword [ebp + 8]
push esi
xor ecx, ecx
mov esi, 0x6930cc
inc ecx
mov eax, edx
lock cmpxchg dword [esi], ecx
cmp eax, edx
je 0x5977a7
mov edx, eax
cmp eax, 1
jbe 0x597789
jmp 0x597996
push ebx
push edi
push 2
pop ebx
push 0x800
xor esi, esi
push esi
push str.icu.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
test edi, edi
je 0x59798b
push str.ucal_close
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5977e0
mov dword [0x693094], eax
jmp 0x5977e8
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_get
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5977ff
mov dword [0x693098], eax
jmp 0x597807
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_getCanonicalTimeZoneID
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x59781e
mov dword [0x69309c], eax
jmp 0x597826
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_getDefaultTimeZone
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x59783d
mov dword [0x6930a0], eax
jmp 0x597845
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_getTimeZoneDisplayName
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x59785c
mov dword [0x6930a4], eax
jmp 0x597864
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_getTimeZoneTransitionDate
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x59787b
mov dword [0x6930a8], eax
jmp 0x597883
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_getTZDataVersion
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x59789a
mov dword [0x6930ac], eax
jmp 0x5978a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_inDaylightTime
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5978b9
mov dword [0x6930b0], eax
jmp 0x5978c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_open
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5978d8
mov dword [0x6930b4], eax
jmp 0x5978e0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_openTimeZoneIDEnumeration
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x5978f7
mov dword [0x6930b8], eax
jmp 0x5978ff
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.ucal_setMillis
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x597916
mov dword [0x6930bc], eax
jmp 0x59791e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.uenum_close
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x597935
mov dword [0x6930c0], eax
jmp 0x59793d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.uenum_count
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x597954
mov dword [0x6930c4], eax
jmp 0x59795c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push str.uenum_unext
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x597973
mov dword [0x6930c8], eax
jmp 0x59797b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x597984
push 3
pop ebx
jmp 0x59798b
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
nop
pop edi
mov dword [0x6930cc], ebx
mov eax, ebx
pop ebx
pop esi
pop ebp
ret