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

Disassembly:
sub esp, 0x60
push ebp
push esi
mov esi, dword [esp + 0x6c]
xor ebp, ebp
cmp si, 0x400
push edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], ebp
jne 0x3005d76c
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
jmp 0x3005d779
cmp si, 0x800
jne 0x3005d779
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
push esi
call fcn.3005f326
mov edi, eax
cmp edi, ebp
mov dword [esp + 0x3c], edi
je 0x3005e2d8
cmp edi, 0x3008b008
je 0x3005e2d8
push ebx
push esi
call fcn.3005f397
mov edx, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov ebx, eax
mov eax, dword [esp + 0x78]
and eax, 0xbfffffff
cmp ebx, ebp
mov dword [esp + 0x48], ebx
je 0x3005e2a0
cmp dword [ebx + 0x1c], ebp
jne 0x3005e2a0
cmp ecx, 0xffffffff
jg 0x3005e2a0
cmp edx, 0xffffffff
jg 0x3005e2aa
cmp eax, 1
ja 0x3005e2a0
test esi, 0xfff00000
jne 0x3005e28c
mov edi, dword [esp + 0x7c]
cmp edi, ebp
mov edx, dword [esp + 0x84]
mov dword [esp + 0x10], edi
mov dword [esp + 0x78], edx
je 0x3005e28c
cmp edx, ebp
je 0x3005e28c
movzx ecx, word [edi]
cmp cx, word [edx]
jne 0x3005d8e1
movzx ecx, cx
mov edi, edi
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
jne 0x3005d8d9
cmp cx, bp
je 0x3005d8d9
movzx ecx, word [edi + 2]
add edi, 2
add edx, 2
cmp cx, word [edx]
je 0x3005d829
mov dword [esp + 0x10], edi
mov dword [esp + 0x78], edx
mov cx, word [edi]
cmp cx, word [edx]
je 0x3005e240
neg eax
sbb eax, eax
and eax, 0xe8000000
add eax, 0xffffffff
mov dword [esp + 0x50], eax
xor eax, eax
cmp dword [ebx + 0x18], ebp
mov dword [esp + 0x44], ebp
setne al
mov dword [esp + 0x38], ebp
mov dword [esp + 0x64], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x58], ebp
mov dword [esp + 0x60], ebp
add eax, 1
or eax, 4
mov dword [esp + 0x20], eax
movzx eax, cx
cmp ax, bp
mov dword [esp + 0x14], ebp
mov dword [esp + 0x74], ebp
je 0x3005e1e8
mov edx, dword [esp + 0x78]
movzx esi, word [edx]
xor ebp, ebp
cmp si, bp
je 0x3005e1e3
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x40]
push ebx
push ebp
lea edx, [esp + 0x24]
push edx
push eax
call fcn.3005b853
push ebx
push ebp
lea eax, [esp + 0x20]
push eax
push esi
call fcn.3005b853
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ebx, dword [esp + 0x18]
and ebp, eax
and ebx, eax
cmp ebp, ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], ebx
je 0x3005e179
mov ax, bp
movzx ecx, ax
mov dword [esp + 0x2c], ecx
mov cx, word [esp + 0x18]
mov edx, ebp
movzx esi, cx
shr edx, 8
shr ebx, 8
cmp ax, cx
mov byte [esp + 0x80], dl
mov byte [esp + 0x88], bl
mov dword [esp + 0x30], esi
jne 0x3005d9cd
cmp dl, 3
jne 0x3005e09b
xor eax, eax
test dl, dl
mov dword [esp + 0x3c], eax
mov ecx, 2
mov esi, 1
jne 0x3005d9ed
add edi, ecx
mov eax, esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], eax
test bl, bl
jne 0x3005d9fa
add dword [esp + 0x78], ecx
jmp 0x3005e1bd
test eax, eax
jne 0x3005e1bd
movzx eax, dl
add eax, 0xffffffff
cmp eax, 5
ja case.0x3005da11.3
jmp dword [eax*4 + 0x3005e308]
cmp dword [esp + 0x38], 0
je 0x3005da26
test byte [esp + 0x20], 2
je 0x3005da33
and dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x38], 3
add edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], esi
jmp case.0x3005da11.3
cmp dword [esp + 0x44], 0
je 0x3005da58
add edi, ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], esi
jmp case.0x3005da11.3
cmp bl, 6
je case.0x3005da11.3
cmp dword [esp + 0x34], 0
je 0x3005da83
add edi, ecx
mov dword [esp + 0x34], 3
mov dword [esp + 0x44], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], esi
jmp case.0x3005da11.3
add edi, ecx
mov dword [esp + 0x28], 3
mov dword [esp + 0x10], edi
mov dword [esp + 0x3c], esi
jmp case.0x3005da11.3
movzx eax, byte [esp + 0x1c]
mov ebp, dword [0x3008b408]
mov ebp, dword [ebp + 0x28]
lea eax, [ebp + eax*4]
mov bp, word [eax]
mov ax, word [eax + 2]
mov dword [esp + 0x58], edi
lea edi, [esp + 0x68]
mov dword [esp + 0x10], edi
mov word [esp + 0x68], bp
mov word [esp + 0x6a], ax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x3c], esi
jmp case.0x3005da11.3
mov al, byte [esp + 0x1c]
mov ebx, ebp
shr ebx, 0x18
and bl, 0x3f
cmp al, 1
mov ecx, 0xffff0000
mov dword [esp + 0x14], 0
mov dword [esp + 0x24], ecx
ja 0x3005dbe4
add edi, 0xfffffffe
cmp edi, dword [esp + 0x7c]
jb 0x3005dc0f
mov esi, dword [esp + 0x10]
mov edi, 2
add esi, 0xfffffffe
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
push ecx
movzx ecx, word [esi]
push edx
lea eax, [esp + 0x2c]
push eax
push ecx
call fcn.3005b853
mov ecx, dword [esp + 0x24]
and ecx, dword [esp + 0x50]
mov eax, ecx
shr eax, 8
cmp al, 3
mov dword [esp + 0x24], ecx
jae 0x3005db50
cmp al, 2
mov ecx, 0xffff0000
je 0x3005dc0f
jmp 0x3005db63
jne 0x3005dbd9
mov al, byte [esp + 0x24]
cmp al, 1
ja 0x3005db7e
mov ecx, 0xffff0000
mov edx, dword [esp + 0x10]
add edi, 2
sub edx, edi
sub esi, 2
cmp edx, dword [esp + 0x7c]
mov dword [esp + 0x24], ecx
jae 0x3005db14
jmp 0x3005dc0f
movzx si, al
mov al, byte [esp + 0x27]
and al, 0x3f
mov cl, al
and cl, 0xc6
mov byte [esp + 0x14], cl
mov cl, al
or si, 0x2200
and cl, 0xe4
cmp byte [esp + 0x1c], 0
mov word [esp + 0x24], si
mov byte [esp + 0x16], cl
jne 0x3005dbc3
movzx ecx, si
and al, 0xc5
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x15], 4
mov byte [esp + 0x17], al
jmp 0x3005dc16
mov ecx, dword [esp + 0x24]
mov eax, ecx
and eax, 0xff87
mov dword [esp + 0x2c], eax
mov byte [esp + 0x15], 5
jmp 0x3005dc08
movzx edx, word [esp + 0x24]
mov dword [esp + 0x2c], edx
jmp 0x3005dc0f
movzx ax, al
or ax, 0x2200
movzx edx, ax
mov al, bl
and al, 0xc6
mov byte [esp + 0x14], al
mov al, bl
and al, 0xe4
mov dword [esp + 0x2c], edx
mov byte [esp + 0x15], 3
mov byte [esp + 0x16], al
and bl, 0xc5
mov byte [esp + 0x17], bl
cmp byte [esp + 0x1c], 1
ja 0x3005dc32
cmp ecx, 0xffff0000
jne 0x3005dc32
xor eax, eax
mov dword [esp + 0x2c], 0xffff
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], eax
jmp 0x3005dc4c
movzx eax, word [esp + 0x2c]
and ebp, 0xffff0000
or ebp, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x1c], ebp
mov byte [esp + 0x1f], 2
cmp byte [esp + 0x88], 3
je 0x3005dca6
cmp byte [esp + 0x74], 0
jne 0x3005dc69
cmp byte [esp + 0x14], 0
je 0x3005dc69
mov byte [esp + 0x74], 3
cmp byte [esp + 0x75], 0
jne 0x3005dc7e
mov ecx, eax
shr ecx, 8
test cl, cl
je 0x3005dc7e
mov byte [esp + 0x75], 3
cmp byte [esp + 0x76], 0
jne 0x3005dc93
mov edx, eax
shr edx, 0x10
test dl, dl
je 0x3005dc93
mov byte [esp + 0x76], 3
cmp byte [esp + 0x77], 0
jne 0x3005dca6
shr eax, 0x18
test al, al
je 0x3005dca6
mov byte [esp + 0x77], 3
mov edi, dword [esp + 0x10]
mov dl, byte [esp + 0x80]
mov bl, byte [esp + 0x88]
mov ecx, 2
mov esi, 1
movzx eax, bl
add eax, 0xffffffff
cmp eax, 5
ja case.0x3005dcd1.3
jmp dword [eax*4 + 0x3005e320]
cmp dword [esp + 0x38], 0
je 0x3005dce6
test byte [esp + 0x20], 2
je 0x3005dcef
and dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x38], esi
add dword [esp + 0x78], ecx
jmp 0x3005e1bd
cmp dword [esp + 0x44], 0
jne 0x3005dd8c
cmp dl, 6
je 0x3005dd2d
cmp dword [esp + 0x28], 0
je 0x3005dd20
add dword [esp + 0x78], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x44], esi
jmp 0x3005e1bd
add dword [esp + 0x78], ecx
mov dword [esp + 0x34], esi
jmp 0x3005e1bd
cmp dword [esp + 0x28], 0
je 0x3005dd4b
add edi, ecx
add dword [esp + 0x78], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], esi
jmp 0x3005e1bd
cmp dword [esp + 0x34], 0
je 0x3005dd6d
add edi, ecx
add dword [esp + 0x78], ecx
mov dword [esp + 0x34], 3
mov dword [esp + 0x10], edi
mov dword [esp + 0x44], esi
jmp 0x3005e1bd
movzx eax, byte [esp + 0x1c]
cmp al, byte [esp + 0x18]
mov dword [esp + 0x44], esi
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
add edi, ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x10], edi
add dword [esp + 0x78], ecx
jmp 0x3005e1bd
mov edx, dword [esp + 0x78]
lea eax, [esp + 0x6c]
mov dword [esp + 0x78], eax
mov eax, dword [0x3008b408]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x60], edx
movzx edx, byte [esp + 0x18]
lea eax, [eax + edx*4]
mov dx, word [eax]
mov ax, word [eax + 2]
mov word [esp + 0x6c], dx
mov word [esp + 0x6e], ax
mov dword [esp + 0x5c], ecx
jmp 0x3005e1bd
mov bl, byte [esp + 0x1b]
mov al, byte [esp + 0x18]
and bl, 0x3f
cmp al, 1
mov ecx, 0xffff0000
mov dword [esp + 0x88], 0
mov dword [esp + 0x24], ecx
ja 0x3005df4a
mov edx, dword [esp + 0x78]
add edx, 0xfffffffe
cmp edx, dword [esp + 0x84]
jb 0x3005de4a
mov esi, dword [esp + 0x78]
mov ebp, dword [esp + 0x50]
mov edi, 2
add esi, 0xfffffffe
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x40]
push eax
movzx eax, word [esi]
push ecx
lea edx, [esp + 0x2c]
push edx
push eax
call fcn.3005b853
mov ecx, dword [esp + 0x24]
and ecx, ebp
mov eax, ecx
shr eax, 8
cmp al, 3
mov dword [esp + 0x24], ecx
jae 0x3005de90
cmp al, 2
mov ecx, 0xffff0000
jne 0x3005dea3
mov dl, byte [esp + 0x88]
cmp byte [esp + 0x18], 1
ja 0x3005df87
cmp ecx, 0xffff0000
mov esi, dword [esp + 0x88]
jne 0x3005df8e
xor esi, esi
mov dword [esp + 0x88], esi
mov dl, byte [esp + 0x88]
mov dword [esp + 0x30], 0xffff
mov dword [esp + 0x18], ecx
jmp 0x3005dfa7
jne 0x3005df3c
mov al, byte [esp + 0x24]
cmp al, 1
ja 0x3005dec2
mov ecx, 0xffff0000
mov edx, dword [esp + 0x78]
add edi, 2
sub edx, edi
sub esi, 2
cmp edx, dword [esp + 0x84]
mov dword [esp + 0x24], ecx
jae 0x3005de16
jmp 0x3005de4a
movzx si, al
mov al, byte [esp + 0x27]
and al, 0x3f
mov dl, al
mov cl, al
or si, 0x2200
and dl, 0xc6
and cl, 0xe4
cmp byte [esp + 0x18], 0
mov word [esp + 0x24], si
mov byte [esp + 0x88], dl
mov byte [esp + 0x8a], cl
jne 0x3005df16
movzx ecx, si
and al, 0xc5
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x24]
mov byte [esp + 0x89], 4
mov byte [esp + 0x8b], al
jmp 0x3005de5c
mov ecx, dword [esp + 0x24]
mov eax, ecx
and eax, 0xff87
and bl, 0xc5
mov dword [esp + 0x30], eax
mov byte [esp + 0x89], 5
mov byte [esp + 0x8b], bl
jmp 0x3005de51
movzx edx, word [esp + 0x24]
mov dword [esp + 0x30], edx
jmp 0x3005de4a
movzx ax, al
or ax, 0x2200
movzx edx, ax
mov dword [esp + 0x30], edx
mov dl, bl
mov al, bl
and dl, 0xc6
and al, 0xe4
and bl, 0xc5
mov byte [esp + 0x88], dl
mov byte [esp + 0x89], 3
mov byte [esp + 0x8a], al
mov byte [esp + 0x8b], bl
jmp 0x3005de51
mov esi, dword [esp + 0x88]
mov eax, dword [esp + 0x18]
movzx ecx, word [esp + 0x30]
and eax, 0xffff0000
or eax, ecx
mov dword [esp + 0x18], eax
mov byte [esp + 0x1b], 2
cmp byte [esp + 0x80], 3
je 0x3005e006
cmp byte [esp + 0x74], 0
jne 0x3005dfc1
test dl, dl
je 0x3005dfc1
mov byte [esp + 0x74], 1
cmp byte [esp + 0x75], 0
jne 0x3005dfd6
mov edx, esi
shr edx, 8
test dl, dl
je 0x3005dfd6
mov byte [esp + 0x75], 1
cmp byte [esp + 0x76], 0
jne 0x3005dfeb
mov eax, esi
shr eax, 0x10
test al, al
je 0x3005dfeb
mov byte [esp + 0x76], 1
cmp byte [esp + 0x77], 0
jne case.0x3005dcd1.3
mov ecx, esi
shr ecx, 0x18
test cl, cl
je case.0x3005dcd1.3
mov byte [esp + 0x77], 1
jmp case.0x3005dcd1.3
cmp byte [esp + 0x74], 0
jne 0x3005e020
mov al, byte [esp + 0x14]
cmp al, dl
je 0x3005e020
setae al
lea eax, [eax + eax + 1]
mov byte [esp + 0x74], al
cmp byte [esp + 0x75], 0
jne 0x3005e03f
mov cl, byte [esp + 0x15]
mov eax, esi
shr eax, 8
cmp cl, al
je 0x3005e03f
setae al
lea eax, [eax + eax + 1]
mov byte [esp + 0x75], al
cmp byte [esp + 0x76], 0
jne 0x3005e05e
mov cl, byte [esp + 0x16]
mov eax, esi
shr eax, 0x10
cmp cl, al
je 0x3005e05e
setae al
lea eax, [eax + eax + 1]
mov byte [esp + 0x76], al
cmp byte [esp + 0x77], 0
jne case.0x3005dcd1.3
mov eax, esi
shr eax, 0x18
cmp byte [esp + 0x17], al
je case.0x3005dcd1.3
setae al
lea eax, [eax + eax + 1]
mov byte [esp + 0x77], al
cmp dword [esp + 0x3c], 0
jne 0x3005e1b9
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
cmp cx, ax
jne 0x3005e1d1
mov edi, dword [esp + 0x10]
test byte [esp + 0x20], 3
mov ebp, dword [esp + 0x48]
mov esi, dword [esp + 0x78]
je 0x3005e14d
mov al, byte [esp + 0x1e]
mov bl, byte [esp + 0x1a]
cmp al, bl
mov byte [esp + 0x88], al
je 0x3005e14d
movzx eax, word [edi + 2]
test ax, ax
je 0x3005e0ff
mov edi, edi
mov edx, dword [esp + 0x40]
push ebp
push edx
lea ecx, [esp + 0x54]
push ecx
push eax
call fcn.3005b853
cmp byte [esp + 0x4d], 1
jne 0x3005e0ff
movzx eax, word [edi + 4]
mov dl, byte [esp + 0x4e]
add byte [esp + 0x88], dl
add edi, 2
test ax, ax
jne 0x3005e0d0
movzx eax, word [esi + 2]
test ax, ax
je 0x3005e130
mov ecx, dword [esp + 0x40]
push ebp
push ecx
lea edx, [esp + 0x54]
push edx
push eax
call fcn.3005b853
cmp byte [esp + 0x4d], 1
jne 0x3005e130
movzx eax, word [esi + 4]
add bl, byte [esp + 0x4e]
add esi, 2
test ax, ax
jne 0x3005e108
movzx eax, byte [esp + 0x88]
cmp al, bl
je 0x3005e14d
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
and dword [esp + 0x20], 0xfffffffe
mov dword [esp + 0x38], eax
test byte [esp + 0x20], 4
je 0x3005e17d
movzx eax, byte [esp + 0x1b]
mov cl, byte [esp + 0x1f]
and al, 0x3f
and cl, 0x3f
cmp cl, al
je 0x3005e17d
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
and dword [esp + 0x20], 0xfffffffb
mov dword [esp + 0x64], eax
jmp 0x3005e17d
mov esi, dword [esp + 0x78]
mov eax, dword [esp + 0x58]
xor ecx, ecx
cmp eax, ecx
je 0x3005e194
sub dword [esp + 0x54], 1
jne 0x3005e194
mov edi, eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x60]
cmp eax, ecx
je 0x3005e1a9
sub dword [esp + 0x5c], 1
jne 0x3005e1a9
mov esi, eax
mov dword [esp + 0x60], ecx
add edi, 2
add esi, 2
mov dword [esp + 0x10], edi
mov dword [esp + 0x78], esi
jmp 0x3005e1bd
mov edi, dword [esp + 0x10]
movzx eax, word [edi]
test ax, ax
jne 0x3005d93f
mov edx, dword [esp + 0x78]
xor ebp, ebp
jmp 0x3005e1e8
sbb eax, eax
and eax, 0xfffffffe
add eax, 3
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18
cmp word [edi], bp
jne 0x3005e251
cmp word [edx], bp
jne 0x3005e24f
mov eax, dword [esp + 0x38]
cmp eax, ebp
jne 0x3005e1d9
mov eax, dword [esp + 0x64]
cmp eax, ebp
jne 0x3005e1d9
cmp dword [esp + 0x74], ebp
je 0x3005e230
mov al, byte [esp + 0x74]
test al, al
jne 0x3005e223
mov al, byte [esp + 0x75]
test al, al
jne 0x3005e223
mov al, byte [esp + 0x76]
test al, al
jne 0x3005e223
mov al, byte [esp + 0x77]
test al, al
je 0x3005e230
pop ebx
pop edi
pop esi
movzx eax, al
pop ebp
add esp, 0x60
ret 0x18
mov eax, dword [esp + 0x28]
cmp eax, ebp
jne 0x3005e1d9
mov eax, dword [esp + 0x34]
cmp eax, ebp
jne 0x3005e1d9
pop ebx
pop edi
pop esi
mov eax, 2
pop ebp
add esp, 0x60
ret 0x18
mov edi, edx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x70]
push ecx
mov ecx, dword [esp + 0x48]
push eax
xor eax, eax
cmp word [edx], bp
push ecx
sete al
lea eax, [eax + eax + 1]
push eax
push edi
call fcn.3005a46c
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x60
ret 0x18
cmp edx, 0xffffffff
jg 0x3005e2aa
mov edx, 0xfffffffe
cmp ecx, 0xffffffff
jg 0x3005e2b4
mov ecx, 0xfffffffe
push edi
push edx
mov edx, dword [esp + 0x8c]
push edx
push ecx
mov ecx, dword [esp + 0x8c]
push ecx
push eax
push ebx
call fcn.3005bdac
pop ebx
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
push edx
mov edx, dword [esp + 0x7c]
push eax
mov eax, dword [esp + 0x7c]
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CompareStringW]
pop edi
pop esi
pop ebp
add esp, 0x60
ret 0x18