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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x7c4
mov eax, dword [0x41f0a0]
xor eax, esp
mov dword [esp + 0x7c0], eax
push ebx
push esi
push edi
push 0x2c
pop edi
push edi
xor ebx, ebx
lea eax, [esp + 0x78]
mov esi, ecx
push ebx
push eax
mov dword [esp + 0x18], esi
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [esp + 0x14], ebx
lea eax, [esp + 0x70]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], ebx
push eax
push dword [esi + 0xc]
mov dword [esp + 0x30], ebx
push dword [esi + 8]
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], 0xffff
mov byte [0x41f481], bl
call dword [sym.imp.ADVAPI32.dll_IsTextUnicode]
test eax, eax
je 0x411369
test byte [esp + 0x70], 0x80
jne 0x411369
mov byte [0x41f481], 1
push 0xa
pop ecx
mov dword [esp + 0x3c], edi
xor eax, eax
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov edi, 0x41f004
lea ecx, [esp + 0x74]
push edi
push ebx
push ebx
push 0x14
push 0x4c
pop edx
call fcn.004139b1
test eax, eax
js 0x411cbc
mov eax, dword [esi + 8]
lea edx, [esp + 0x3c]
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x190]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], 0x20
mov dword [esp + 0x4c], eax
mov dword [esp + 0x64], ebx
call fcn.00413d1f
test eax, eax
jns 0x4113f4
cmp eax, 0xc0150021
jne 0x4113d9
push 0x408130
jmp 0x411c36
push eax
push 0x408240
push ebx
push 0x402b04
push 4
call fcn.0040d01f
add esp, 0x14
jmp 0x411cbc
lea eax, [esp + 0x74]
xor edx, edx
push eax
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x198]
call fcn.004142d0
test eax, eax
mov eax, dword [esp + 0xa0]
js 0x411cb0
cmp eax, 3
je 0x411435
test eax, eax
je 0x411cb0
cmp eax, 1
jne 0x4113f4
jmp 0x411cb5
mov edi, dword [esp + 0xdc]
test edi, edi
je 0x411449
mov esi, dword [esp + 0xd8]
jmp 0x411457
mov esi, dword [esp + 0xc8]
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0x100]
mov edx, 0x4082ac
push edi
push 0x408290
mov ecx, esi
mov dword [esp + 0x3c], eax
mov dword [esp + 0x24], ebx
call fcn.004111b4
test al, al
je 0x4114a4
call fcn.004138b9
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
je 0x411cbc
mov dword [esp + 0x1c], 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ebx
jmp 0x411590
push edi
push 0x4082bc
mov edx, 0x4082dc
mov ecx, esi
call fcn.004111b4
test al, al
je 0x4114fc
mov eax, dword [0x41f058]
push 0x2c
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x420210]
mov ecx, 0x41f058
call esi
mov esi, eax
test esi, esi
jne 0x4114de
call fcn.0040d097
mov eax, dword [esp + 0xc]
mov dword [eax + 0x44], esi
test esi, esi
je 0x411cbc
mov dword [esp + 0x18], 1
mov esi, eax
jmp 0x411594
push edi
push 0x4082ec
mov edx, 0x408310
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411530
call fcn.004138e2
mov esi, dword [esp + 0xc]
mov dword [esi + 0x3c], eax
test eax, eax
je 0x411cbc
mov dword [esp + 0x24], 1
jmp 0x411594
push edi
push 0x408324
mov edx, 0x40834c
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411560
call fcn.004138e2
mov esi, dword [esp + 0xc]
mov dword [esi + 0x40], eax
test eax, eax
je 0x411cbc
mov dword [esp + 0x24], ebx
jmp 0x411594
push edi
push 0x408360
mov edx, 0x40837c
mov ecx, esi
call fcn.004111b4
test al, al
jne 0x411590
push edi
push 0x40838c
mov edx, 0x4083a0
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c17
mov esi, dword [esp + 0xc]
mov dword [esp + 0x30], ebx
cmp dword [esp + 0x34], ebx
jbe 0x4113f4
mov eax, ebx
lea ecx, [esp + 0x140]
mov edx, eax
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x68]
push ebx
push ecx
lea ecx, [esp + 0x7c]
call fcn.00413ae6
test eax, eax
js 0x411cbc
mov eax, dword [esp + 0x68]
mov edi, dword [eax + 0x14]
test edi, edi
je 0x4115d8
lea esi, [eax + 0x10]
jmp 0x4115dd
mov edi, dword [eax + 4]
mov esi, eax
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
xor eax, eax
mov esi, dword [esi]
mov dword [esp + 0x10], ecx
mov cl, byte [0x41f481]
test cl, cl
mov dword [esp + 0x68], edx
sete al
dec eax
and eax, 0x8000
add eax, 0x8000
cmp edx, eax
jae 0x411c9a
test cl, cl
je 0x411620
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_towupper]
movzx eax, ax
jmp 0x41162a
movsx eax, byte [esi]
push eax
call dword [sym.imp.msvcrt.dll_toupper]
pop ecx
sub eax, 0x43
je 0x411b81
sub eax, 3
je 0x411ad1
sub eax, 3
je 0x4119a0
sub eax, 3
je 0x41196d
sub eax, 7
je 0x411839
sub eax, 1
je 0x4116be
sub eax, 1
jne 0x411bf8
cmp dword [esp + 0x18], ebx
je 0x411bf8
push edi
push 0x408c40
mov edx, 0x408c74
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411695
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 0x28
jmp 0x411b64
push edi
push 0x408c90
mov edx, 0x408cc4
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 0x14
jmp 0x411b64
cmp dword [esp + 0x18], ebx
je 0x411bf8
cmp dword [esp + 0x1c], ebx
je 0x411bf8
cmp dword [esp + 0x28], ebx
jne 0x411c4b
push edi
push 0x408af4
mov edx, 0x408b0c
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
mov cl, byte [0x41f481]
xor eax, eax
mov edx, dword [esp + 0x10]
test cl, cl
je 0x41170c
cmp word [edx], 0x23
jmp 0x41170f
cmp byte [edx], 0x23
sete al
test eax, eax
je 0x41177d
lea eax, [esp + 0x6c]
push 0xa
push eax
test cl, cl
je 0x41172d
lea eax, [edx + 2]
push eax
call dword [sym.imp.msvcrt.dll_wcstoul]
jmp 0x411737
lea eax, [edx + 1]
push eax
call dword [sym.imp.msvcrt.dll_strtoul]
mov edx, dword [esp + 0x20]
add esp, 0xc
movzx eax, ax
mov dword [edx + 4], eax
mov dword [edx], ebx
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x4117a5
push 0x10
push ebx
push eax
cmp byte [0x41f481], bl
je 0x411762
call dword [sym.imp.msvcrt.dll_wcstoul]
jmp 0x411768
call dword [sym.imp.msvcrt.dll_strtoul]
movzx eax, ax
add esp, 0xc
test ax, ax
jne 0x411c31
mov edx, dword [esp + 0x14]
jmp 0x4117a5
mov ecx, dword [esp + 0x14]
add ecx, 0x10
je 0x411791
push dword [esp + 0x68]
call fcn.0041122c
jmp 0x411793
mov al, bl
test al, al
je 0x411cbc
mov edx, dword [esp + 0x14]
mov dword [edx], 1
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x24], ebx
je 0x4117b4
mov esi, dword [eax + 0x3c]
jmp 0x4117b7
mov esi, dword [eax + 0x40]
add esi, 8
mov ecx, dword [esi]
test ecx, ecx
je 0x411810
cmp dword [edx], ebx
je 0x4117e4
cmp dword [ecx], ebx
je 0x4117e0
push edi
push dword [edx + 0x10]
push dword [ecx + 0x10]
call dword [sym.imp.msvcrt.dll__wcsnicmp]
add esp, 0xc
test eax, eax
je 0x4117fb
mov edx, dword [esp + 0x14]
mov ecx, dword [esi]
jmp 0x4117ec
mov eax, dword [ecx + 4]
cmp eax, dword [edx + 4]
je 0x411810
lea esi, [ecx + 0x1c]
mov ecx, dword [esi]
test ecx, ecx
jne 0x4117c0
mov edi, dword [esp + 0x14]
jmp 0x411818
mov edi, dword [esp + 0x14]
mov ecx, 0x41f058
push dword [edi + 0x10]
call fcn.0040cf60
mov ecx, dword [esi]
jmp 0x411814
mov edi, dword [esp + 0x14]
test ecx, ecx
jne 0x41181c
mov dword [esi], edi
jmp 0x41182c
cmp dword [edi + 4], 0xe
je 0x41182c
cmp dword [edi + 4], 0xc
jne 0x411c39
mov dword [esp + 0x28], 1
jmp 0x411bf8
cmp dword [esp + 0x18], ebx
je 0x4118d6
cmp dword [esp + 0x1c], ebx
je 0x4118d6
push edi
push 0x40888c
mov edx, 0x4088a0
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
mov edi, dword [esp + 0x14]
cmp dword [edi + 8], ebx
jne 0x411c59
cmp dword [edi + 4], 6
jne 0x411c52
mov esi, dword [esp + 0x68]
lea ecx, [esp + 0x38]
mov edx, dword [esp + 0x10]
push esi
mov dword [edi + 8], 1
call fcn.0041122c
test al, al
je 0x411cbc
cmp byte [0x41f481], bl
je 0x4118a9
shr esi, 1
mov ecx, dword [esp + 0x38]
lea edx, [esi + 1]
call fcn.00410b22
mov dl, 1
mov dword [edi + 0x14], eax
mov ecx, edi
call fcn.00410e4b
test al, al
je 0x411cbc
mov dword [esp + 0x20], 1
jmp 0x411bf8
push edi
push 0x4089d8
mov edx, 0x4089fc
mov ecx, esi
call fcn.004111b4
test al, al
je 0x4118fb
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 0x10
jmp 0x411b64
push edi
push 0x408a10
mov edx, 0x408a30
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x44]
add ecx, 0x18
je 0x411934
push dword [esp + 0x68]
mov edx, dword [esp + 0x14]
call fcn.0041122c
mov edx, dword [esp + 0xc]
jmp 0x411936
mov al, bl
test al, al
je 0x411cbc
mov eax, dword [edx + 0x44]
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x411955
lea eax, [esp + 0x7ac]
push eax
call fcn.00412927
lea esi, [esp + 0x7ac]
mov byte [0x41f53c], 1
mov edi, 0x41f4c0
jmp 0x411bf4
cmp dword [esp + 0x18], ebx
je 0x411bf8
push edi
push 0x40886c
mov edx, 0x408880
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 0x24
jmp 0x411b64
cmp dword [esp + 0x18], ebx
je 0x411bf8
cmp dword [esp + 0x1c], ebx
je 0x411bf8
push edi
push 0x40857c
mov edx, 0x40858c
mov ecx, esi
call fcn.004111b4
test al, al
je 0x4119d8
cmp dword [esp + 0x20], ebx
jne 0x411c60
mov dl, 1
jmp 0x4119fe
push edi
push 0x40865c
mov edx, 0x408670
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
cmp dword [esp + 0x20], ebx
jne 0x411c77
mov dl, bl
mov edi, dword [esp + 0x14]
mov byte [esp + 0x2c], dl
mov ecx, dword [edi + 4]
mov dword [edi + 8], 1
cmp ecx, 0xe
je 0x411c70
cmp ecx, 0xc
je 0x411c70
cmp ecx, 3
je 0x411a81
cmp ecx, 1
je 0x411a81
movzx eax, dl
lea ecx, [edi + 0x14]
xor eax, 1
lea ecx, [ecx + eax*4]
test ecx, ecx
je 0x411a4f
push dword [esp + 0x68]
mov edx, dword [esp + 0x14]
call fcn.0041122c
mov dl, byte [esp + 0x2c]
jmp 0x411a51
mov al, bl
test al, al
je 0x411cbc
test dl, dl
je 0x411a62
mov eax, dword [edi + 0x14]
jmp 0x411a65
mov eax, dword [edi + 0x18]
test eax, eax
je 0x411bf8
mov ecx, edi
call fcn.00410e4b
test al, al
je 0x411cbc
jmp 0x411bf8
mov eax, dword [esp + 0xc]
cmp dword [esp + 0x24], ebx
je 0x411a90
mov eax, dword [eax + 0x3c]
jmp 0x411a93
mov eax, dword [eax + 0x40]
mov edx, dword [eax + 8]
cmp ecx, 3
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x10]
sete al
movzx eax, al
push eax
push dword [esp + 0x70]
push dword [esp + 0x1c]
push edx
call fcn.0041275e
mov edi, eax
mov dword [esp + 0x14], edi
test edi, edi
je 0x411c67
cmp dword [edi + 0x14], ebx
je 0x411bf8
mov dl, 1
jmp 0x411a6d
cmp dword [esp + 0x18], ebx
je 0x411bf8
push edi
push 0x4084f0
mov edx, 0x408504
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411afc
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
test ecx, ecx
jmp 0x411b64
push edi
push 0x408510
mov edx, 0x408524
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411b1e
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 4
jmp 0x411b64
push edi
push 0x408530
mov edx, 0x40854c
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411b40
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 8
jmp 0x411b64
push edi
push 0x40855c
mov edx, 0x408570
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c7e
mov esi, dword [esp + 0xc]
mov ecx, dword [esi + 0x44]
add ecx, 0xc
je 0x411b75
push dword [esp + 0x68]
mov edx, dword [esp + 0x14]
call fcn.0041122c
jmp 0x411b77
mov al, bl
test al, al
je 0x411cbc
jmp 0x411bfc
cmp dword [esp + 0x18], ebx
je 0x411bf8
push edi
push 0x408470
mov edx, 0x408484
mov ecx, esi
call fcn.004111b4
test al, al
je 0x411c92
mov edx, dword [esp + 0xc]
mov ecx, dword [edx + 0x44]
add ecx, 0x1c
je 0x411bc0
push dword [esp + 0x68]
mov edx, dword [esp + 0x14]
call fcn.0041122c
mov edx, dword [esp + 0xc]
jmp 0x411bc2
mov al, bl
test al, al
je 0x411cbc
mov eax, dword [edx + 0x44]
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x411be1
lea eax, [esp + 0x7bc]
push eax
call fcn.00412927
lea esi, [esp + 0x7bc]
mov byte [0x41f530], 1
mov edi, 0x41f460
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x30]
inc edi
movzx eax, di
mov dword [esp + 0x30], edi
cmp eax, dword [esp + 0x34]
jb 0x4115a4
jmp 0x4113f4
push esi
push 0x4083b0
push 2
push 0x402b04
call fcn.0040cff7
add esp, 0x10
jmp 0x411cbc
push 0x408b18
push ebx
jmp 0x411ca1
push edi
mov ecx, 0x41f058
call fcn.0040cf60
push 0x408b68
jmp 0x411c9f
push 0x408a40
jmp 0x411c9f
push 0x408968
jmp 0x411c9f
push 0x4088b0
jmp 0x411c9f
push 0x408598
jmp 0x411c9f
push esi
push 0x408818
push ebx
jmp 0x411c1f
push 0x408750
jmp 0x411c9f
push 0x408680
jmp 0x411c9f
push esi
push 0x408490
push 2
push 0x402b04
push 1
jmp 0x4113e7
push esi
push 0x408490
jmp 0x411c1d
push 0x408410
push 2
push 0x402b04
call fcn.0040cff7
add esp, 0xc
jmp 0x411cbc
cmp eax, 1
jne 0x411cbc
cmp dword [esi + 0x44], ebx
je 0x411cbc
mov bl, 1
lea ecx, [esp + 0x74]
call fcn.00413ba4
mov ecx, dword [esp + 0x7cc]
mov al, bl
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0041d1b0
mov esp, ebp
pop ebp
ret