Function at 0x437d18
Capabilities:
Check mutex on windows
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x18], eax
xor eax, eax
push ebp
push 0x438f9b
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
mov eax, dword [0x43ba7c]
cmp dword [eax], 0
jne 0x437d61
mov edx, dword [0x43ba7c]
xor eax, eax
call fcn.004027d4
mov eax, dword [0x43ba60]
mov dword [eax], 0x10000
mov eax, dword [0x43b9b0]
mov eax, dword [eax]
mov edx, dword [0x43b978]
mov dword [edx], eax
push 0x438fac
mov eax, dword [0x43b978]
mov eax, dword [eax]
push eax
call sub.user32.dll_LoadIconA
mov edx, dword [0x43ba5c]
mov dword [edx], eax
mov eax, dword [0x43b970]
mov byte [eax], 1
mov byte [ebp - 0x2d], 0
call fcn.00436d58
mov edx, dword [0x43ba70]
mov dword [edx], eax
mov eax, dword [0x43ba70]
cmp dword [eax], 0
jne 0x437dc7
mov eax, 0x438fc0
call fcn.00418030
jmp 0x438f6b
mov eax, dword [0x43ba70]
mov eax, dword [eax]
mov edx, dword [0x43ba48]
mov dword [edx], eax
mov edx, dword [0x43ba84]
mov edx, dword [edx]
mov eax, dword [0x43b9f8]
mov ecx, 0x438fe4
call fcn.004038a4
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x437e90
push 0xa
push 0x438ff0
mov eax, dword [0x43b978]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_FindResourceA
mov ebx, eax
test ebx, ebx
jne 0x437e24
mov eax, 0x439000
call fcn.00418030
jmp 0x438f6b
push ebx
mov eax, dword [0x43b978]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_SizeofResource
mov esi, eax
push ebx
mov eax, dword [0x43b978]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_LoadResource
push eax
call sub.KERNEL32.DLL_LockResource
mov ebx, eax
mov eax, dword [0x43b9f8]
mov eax, dword [eax]
call fcn.00406b50
mov dword [ebp - 0x1c], eax
xor eax, eax
push ebp
push 0x437e89
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, ebx
mov ecx, esi
mov eax, dword [ebp - 0x1c]
call fcn.00406ba0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x437e90
mov eax, dword [ebp - 0x1c]
call fcn.00406bd8
ret
mov dl, 1
mov eax, dword [0x40c47c]
call fcn.00402c74
mov edx, dword [0x43b958]
mov dword [edx], eax
lea eax, [ebp - 0x10]
call fcn.00407148
lea edx, [ebp - 0x34]
mov eax, dword [0x43ba7c]
mov eax, dword [eax]
call fcn.00406ec8
mov eax, dword [ebp - 0x34]
call fcn.00407170
mov eax, dword [0x43ba2c]
cmp dword [eax + 1], 4
jg 0x437ed8
mov eax, dword [0x43ba2c]
cmp byte [eax], 5
jne 0x437eea
push 0x43901c
call sub.KERNEL32.DLL_LoadLibraryA
mov edx, dword [0x43ba34]
mov dword [edx], eax
mov eax, dword [0x43ba34]
cmp dword [eax], 0
je 0x437f0e
push 0x439024
mov eax, dword [0x43ba34]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_GetProcAddress
mov edx, dword [0x43b96c]
mov dword [edx], eax
xor edx, edx
push ebp
push 0x438f61
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, 0x439040
call fcn.004104d4
mov edx, dword [0x43b980]
mov byte [edx], al
lea ecx, [ebp - 0xc]
mov eax, dword [0x43ba7c]
mov eax, dword [eax]
mov edx, 0x439050
call fcn.00406e34
mov eax, dword [0x43ba38]
mov eax, dword [eax]
mov ecx, 0x439060
mov edx, dword [ebp - 0xc]
call fcn.0041bd0c
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x437f65
call fcn.0042b3f0
call fcn.0042a790
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x4380e5
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov ebx, dword [eax + 0x34]
mov ecx, ebx
mov dl, 1
mov eax, dword [0x42037c]
call fcn.0041b0c0
mov edx, eax
mov eax, dword [0x43ba6c]
mov eax, ebx
call fcn.0041c0d4
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00421128
mov ebx, eax
lea eax, [ebx + 0x24]
mov edx, dword [0x43ba7c]
mov edx, dword [edx]
call fcn.00403630
mov byte [ebx + 0x38], 1
mov byte [ebx + 0x18], 1
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00421128
call fcn.004372c0
test al, al
jne 0x437fed
call fcn.00403194
jmp 0x438f6b
call fcn.004368fc
test al, al
jne 0x43800a
mov eax, 0x439078
call fcn.00418030
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00421128
call fcn.00437750
test al, al
jne 0x43802e
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
call fcn.0041b3f0
mov dl, 1
mov eax, dword [0x41932c]
call fcn.00419e50
mov dword [ebp - 0x2c], eax
xor eax, eax
push ebp
push 0x4380b6
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00421128
mov edx, dword [eax + 0x20]
lea eax, [ebp - 0x38]
mov ecx, 0x4390fc
call fcn.004038a4
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.004376c0
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
call fcn.00419fbc
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x48]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4380bd
mov eax, dword [ebp - 0x2c]
call fcn.00402c9c
ret
mov edx, 0x439110
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00423c3c
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x439120
call fcn.00423a90
mov edx, dword [0x43b9a8]
mov byte [edx], al
lea eax, [ebp - 0x18]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov ecx, 0x439138
mov edx, 0x439144
call fcn.00423834
lea eax, [ebp - 0x34]
mov ecx, 0x439154
mov edx, dword [ebp - 0x18]
call fcn.004038a4
mov eax, dword [ebp - 0x34]
call fcn.00403a1c
push eax
push 0
push 0
call sub.KERNEL32.DLL_CreateMutexA
mov edx, dword [0x43b9e0]
mov dword [edx], eax
call sub.KERNEL32.DLL_GetLastError_1
cmp eax, 0xb7
jne 0x438179
mov eax, dword [0x43b9e0]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_CloseHandle_1
mov eax, dword [0x43b9e0]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x43b980]
cmp byte [eax], 0
je 0x4382ce
call fcn.00402774
cmp eax, 2
jl 0x4381bf
lea edx, [ebp - 0x34]
mov eax, 2
call fcn.004027d4
mov eax, dword [ebp - 0x34]
mov edx, dword [ebp - 0x18]
call fcn.00403968
je 0x4381bf
mov eax, 0x439164
call fcn.00418030
call fcn.00403194
jmp 0x438f6b
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x439188
call fcn.00423834
mov edx, dword [ebp - 0x38]
lea ecx, [ebp - 0x34]
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
call fcn.004234c4
mov edx, dword [ebp - 0x34]
mov eax, dword [0x43b9e8]
call fcn.00403630
lea eax, [ebp - 0x14]
push eax
mov eax, 0x439198
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea edx, [ebp - 0x48]
mov ecx, 1
mov eax, 0x4391d8
call fcn.004077d4
lea eax, [ebp - 0xc]
push eax
xor ecx, ecx
mov edx, 0x4391ec
mov eax, dword [ebp - 0x14]
call fcn.00412e6c
cmp dword [ebp - 0xc], 0
jne 0x438279
lea eax, [ebp - 0x14]
push eax
mov eax, 0x439198
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea edx, [ebp - 0x48]
mov ecx, 1
mov eax, 0x439204
call fcn.004077d4
lea eax, [ebp - 0xc]
push eax
xor ecx, ecx
mov edx, 0x4391ec
mov eax, dword [ebp - 0x14]
call fcn.00412e6c
cmp dword [ebp - 0xc], 0
je 0x43828b
mov eax, dword [ebp - 0xc]
call fcn.00406c48
test al, al
jne 0x43829f
mov eax, 0x439164
call fcn.00418030
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43ba38]
mov eax, dword [eax]
mov ecx, 0x439060
mov edx, dword [ebp - 0xc]
call fcn.0041bd0c
call fcn.0042b3f0
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov ecx, 0x439218
mov edx, 0x439224
call fcn.00423aac
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov ecx, 0x439238
mov edx, 0x439244
call fcn.00423834
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0xc]
call fcn.0040676c
mov edx, 0x439250
mov eax, dword [ebp - 0xc]
call fcn.0040f754
mov esi, eax
test esi, esi
jle 0x438349
mov ebx, 1
lea eax, [ebp - 0x38]
push eax
mov ecx, 0x439250
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.0040f89c
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00406908
lea eax, [ebp - 0x34]
mov edx, 0x439278
call fcn.00403860
mov edx, dword [ebp - 0x34]
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov ecx, dword [eax]
call dword [ecx + 0x34]
inc ebx
dec esi
jne 0x43830b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x439284
call fcn.00423a90
test al, al
jne 0x43836c
push 1
push 0x436e80
call sub.KERNEL32.DLL_EnumSystemLocalesA
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x438458
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x38]
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00410634
cmp dword [ebp - 0x34], 0
jne 0x438450
lea ecx, [ebp - 0x34]
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x34]
lea edx, [ebp - 0xc]
call fcn.00410614
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 0xb
mov eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00421128
push dword [eax + 0x20]
push 0x4392a8
push 0x4392b4
push dword [ebp - 0xc]
push 0x4392c0
lea eax, [ebp - 0x34]
mov edx, 5
call fcn.00403918
mov eax, dword [ebp - 0x34]
mov ecx, 0x4392d0
mov edx, 0x4392e8
call fcn.0041252c
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea edx, [ebp - 0x48]
mov ecx, 1
mov eax, 0x4392f8
call fcn.004077d4
mov ecx, dword [ebp - 0x34]
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0x20]
inc ebx
dec esi
jne 0x438386
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x438479
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, 0x439308
mov ecx, dword [eax]
call dword [ecx + 0x34]
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x439324
call fcn.00423834
cmp dword [ebp - 0x34], 0
jne 0x438512
xor ebx, ebx
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov cl, 1
mov edx, 0x439334
call fcn.00423a90
test al, al
je 0x4384f9
lea eax, [ebp - 0x34]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov ecx, 0x439238
mov edx, 0x439350
call fcn.00423834
mov edx, dword [ebp - 0x34]
mov eax, dword [0x43b958]
mov eax, dword [eax]
call fcn.0040da64
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4384f2
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, 0x439238
call fcn.0040da64
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x4384f9
xor ebx, ebx
lea ecx, [ebp - 0x34]
mov eax, dword [0x43b958]
mov eax, dword [eax]
mov edx, ebx
call fcn.0040d7cc
mov eax, dword [ebp - 0x34]
call fcn.0042aacc
mov eax, dword [0x43b9e0]
cmp dword [eax], 0
jne 0x43856f
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
mov edx, 0x439364
call fcn.00423834
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
lea eax, [ebp - 0x50]
push eax
lea edx, [ebp - 0x54]
mov eax, 0x15
call fcn.0042a678
mov eax, dword [ebp - 0x54]
xor ecx, ecx
pop edx
call fcn.004077d4
mov eax, dword [ebp - 0x34]
call fcn.00418100
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
xor edx, edx
call fcn.00421128
mov edx, eax
mov eax, dword [0x43b98c]
mov eax, dword [eax]
call fcn.00435130
test al, al
jne 0x43859c
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x4385b0
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b980]
cmp byte [eax], 0
jne 0x4386bc
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x4386bc
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov edi, dword [eax + 0x40]
mov eax, edi
call fcn.0041c094
test eax, eax
jle 0x438667
lea eax, [ebp - 0xc]
mov edx, dword [0x43ba38]
mov edx, dword [edx]
mov edx, dword [edx + 0x1c]
call fcn.00403674
cmp dword [ebp - 0xc], 0
jne 0x438653
xor eax, eax
mov dword [ebp - 8], eax
mov eax, edi
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x43863e
inc esi
xor ebx, ebx
mov edx, ebx
mov eax, edi
call fcn.00421814
cmp byte [eax + 0x30], 0
je 0x43863a
mov edx, ebx
mov eax, edi
call fcn.00421814
call fcn.00421f5c
test al, al
je 0x43863a
mov dword [ebp - 8], ebx
jmp 0x43863e
inc ebx
dec esi
jne 0x438614
mov edx, dword [ebp - 8]
mov eax, edi
call fcn.00421814
mov edx, dword [eax + 0x20]
lea eax, [ebp - 0xc]
call fcn.00403674
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov edx, dword [ebp - 0xc]
call fcn.004219e8
jmp 0x43871e
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x43871e
inc esi
xor ebx, ebx
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov edx, ebx
call fcn.00420e48
call fcn.00421f5c
test al, al
je 0x4386b6
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov edx, ebx
call fcn.00420e48
mov dl, 1
call fcn.00420a5c
inc ebx
dec esi
jne 0x438684
jmp 0x43871e
lea eax, [ebp - 0xc]
call fcn.004035dc
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
je 0x4386e1
lea eax, [ebp - 0xc]
mov edx, dword [0x43ba6c]
mov edx, dword [edx]
mov edx, dword [edx + 0x2c]
call fcn.00403674
mov eax, dword [0x43b980]
cmp byte [eax], 0
je 0x4386fe
lea eax, [ebp - 0xc]
mov edx, dword [0x43ba38]
mov edx, dword [edx]
mov edx, dword [edx + 0x1c]
call fcn.00403674
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov edx, dword [ebp - 0xc]
call fcn.0041c564
mov edx, dword [0x43ba6c]
mov edx, dword [edx]
mov edx, dword [edx + 0x40]
mov dword [edx + 0x1c], eax
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x438767
mov eax, dword [0x43ba38]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x438767
inc esi
xor ebx, ebx
mov eax, dword [0x43ba38]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00420e48
mov edx, dword [eax + 0x20]
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov cl, 1
call fcn.00421b64
inc ebx
dec esi
jne 0x438741
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x438784
call fcn.004378a8
test al, al
jne 0x438784
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x438798
call fcn.00403194
jmp 0x438f6b
push 1
xor ecx, ecx
xor edx, edx
mov eax, 4
call fcn.00434f08
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x4387bc
call fcn.00403194
jmp 0x438f6b
mov byte [ebp - 0x2d], 1
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
je 0x4387db
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
cmp byte [eax + 0x48], 1
jne 0x438879
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov byte [eax + 0x48], 0
mov eax, dword [0x43b9c8]
mov byte [eax], 0
mov bl, 1
push 0
mov dx, 6
xor eax, eax
call fcn.00405b68
mov edx, eax
xor ecx, ecx
mov eax, 0xa
call fcn.00434f08
test eax, eax
jne 0x438852
mov eax, 0x42b618
mov edx, 4
call fcn.0042b5a0
mov ebx, eax
mov eax, dword [0x43ba14]
cmp byte [eax], 0
je 0x438837
mov byte [ebp - 1], bl
call fcn.00403194
jmp 0x438f6b
push 1
mov dx, 6
xor eax, eax
call fcn.00405b68
mov edx, eax
xor ecx, ecx
mov eax, 0xb
call fcn.00434f08
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
add eax, 0x28
call fcn.004035dc
test bl, bl
je 0x43886f
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x438879
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x438ca1
push 0
xor ecx, ecx
xor edx, edx
mov eax, 6
call fcn.00434f08
test eax, eax
je 0x4388a5
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x4388b9
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
call fcn.0041c094
test eax, eax
jne 0x438920
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x438a1a
inc esi
xor ebx, ebx
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
mov edx, ebx
call fcn.00421334
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
call fcn.00421f5c
test al, al
je 0x438917
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4c], 1
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4d], 1
inc ebx
dec esi
jne 0x4388e9
jmp 0x438a1a
lea eax, [ebp - 0xc]
call fcn.004035dc
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x24]
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x3c]
mov edx, dword [ebp - 0xc]
call fcn.00420f0c
mov edi, eax
test edi, edi
je 0x438a10
cmp byte [edi + 0x3c], 0
je 0x4389fc
cmp dword [edi + 0x38], 0
je 0x4389fc
mov eax, dword [edi + 0x38]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x4389fc
inc esi
xor ebx, ebx
mov eax, dword [edi + 0x38]
mov edx, ebx
call fcn.00421334
mov edx, dword [eax + 0x20]
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
call fcn.0041c564
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x4389b6
mov eax, dword [ebp - 0x20]
call fcn.00421f5c
test al, al
je 0x4389f4
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4c], 1
mov eax, dword [ebp - 0x20]
mov byte [eax + 0x4d], 1
jmp 0x4389f4
lea eax, [ebp - 0x34]
push eax
mov eax, dword [edi + 0x38]
mov edx, ebx
call fcn.00421334
mov eax, dword [eax + 0x20]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
lea edx, [ebp - 0x50]
xor ecx, ecx
mov eax, 0x439374
call fcn.004077d4
mov edx, dword [ebp - 0x34]
mov eax, 0x43939c
call fcn.0042b13c
call fcn.00403194
jmp 0x438f6b
inc ebx
dec esi
jne 0x438975
cmp dword [ebp - 0x28], 0
je 0x438a10
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 0x28]
mov edx, dword [edx + 0x20]
call fcn.00403674
cmp dword [ebp - 0x28], 0
jne 0x438928
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
call fcn.0041c094
mov ebx, eax
dec ebx
cmp ebx, 0
jl 0x438a90
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
mov edx, ebx
call fcn.00421334
mov esi, eax
cmp byte [esi + 0x4c], 0
je 0x438a79
cmp dword [esi + 0x2c], 0
jne 0x438a8a
lea edx, [ebp - 0x38]
mov eax, dword [0x43ba7c]
mov eax, dword [eax]
call fcn.00406f90
mov eax, dword [ebp - 0x38]
lea ecx, [ebp - 0x34]
xor edx, edx
call fcn.00406e34
mov edx, dword [ebp - 0x34]
lea eax, [esi + 0x2c]
call fcn.00403630
jmp 0x438a8a
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
mov edx, ebx
call fcn.0041c114
dec ebx
cmp ebx, 0xffffffff
jne 0x438a31
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x438b0e
inc esi
xor ebx, ebx
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
mov edx, ebx
call fcn.00421334
mov edi, eax
mov edx, dword [edi + 0x2c]
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.004211a0
test eax, eax
jne 0x438b06
lea eax, [ebp - 0x34]
push eax
mov eax, dword [edi + 0x2c]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 0xb
lea edx, [ebp - 0x50]
xor ecx, ecx
mov eax, 0x4393ac
call fcn.004077d4
mov edx, dword [ebp - 0x34]
mov eax, 0x43939c
call fcn.0042b13c
call fcn.00403194
jmp 0x438f6b
mov byte [eax + 0x38], 1
inc ebx
dec esi
jne 0x438aa9
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.0041c094
mov ebx, eax
dec ebx
cmp ebx, 1
jl 0x438b52
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00421128
cmp byte [eax + 0x38], 0
jne 0x438b4d
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.0041c114
dec ebx
test ebx, ebx
jne 0x438b25
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jle 0x438bce
mov ebx, 1
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00421128
mov edi, eax
lea ecx, [ebp - 0x38]
mov eax, dword [edi + 0x1c]
mov edx, 0x4393e0
call fcn.00406e34
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x34]
call fcn.00407010
mov edx, dword [ebp - 0x34]
lea eax, [edi + 0x24]
call fcn.00403630
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00421128
call fcn.004372c0
test al, al
jne 0x438bca
call fcn.00403194
jmp 0x438f6b
inc ebx
dec esi
jne 0x438b6d
call fcn.004368fc
test al, al
jne 0x438bf0
mov edx, 0x4393f0
mov eax, 0x43939c
call fcn.0042b13c
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jle 0x438c33
mov ebx, 1
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00421128
call fcn.00437750
test al, al
jne 0x438c2f
call fcn.00403194
jmp 0x438f6b
inc ebx
dec esi
jne 0x438c0b
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jl 0x438ca1
inc esi
xor ebx, ebx
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x38]
mov edx, ebx
call fcn.00421334
mov edi, eax
mov edx, dword [edi + 0x2c]
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.004211a0
mov eax, dword [eax + 0x28]
mov edx, dword [edi + 0x20]
call fcn.0041c564
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x438c9d
mov eax, dword [ebp - 0x20]
add eax, 0x2c
mov edx, dword [edi + 0x2c]
call fcn.00403630
mov edx, dword [ebp - 0x20]
mov eax, edi
mov ecx, dword [eax]
call dword [ecx + 8]
inc ebx
dec esi
jne 0x438c4c
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
call fcn.0041c094
mov esi, eax
dec esi
test esi, esi
jle 0x438cdf
mov ebx, 1
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x34]
mov edx, ebx
call fcn.00421128
mov edx, eax
mov eax, dword [0x43b98c]
mov eax, dword [eax]
call fcn.00435130
inc ebx
dec esi
jne 0x438cbc
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x438cf3
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x438d2f
push 0
xor ecx, ecx
xor edx, edx
mov eax, 8
call fcn.00434f08
test eax, eax
je 0x438d1b
call fcn.00403194
jmp 0x438f6b
mov eax, dword [0x43b97c]
cmp byte [eax], 0
je 0x438d2f
call fcn.00403194
jmp 0x438f6b
call fcn.00430234
mov byte [ebp - 1], al
mov eax, dword [0x43ba14]
cmp byte [eax], 0
jne 0x438d94
cmp byte [ebp - 1], 0
je 0x438d63
push 1
xor ecx, ecx
xor edx, edx
mov eax, 9
call fcn.00434f08
mov eax, dword [0x43b97c]
mov al, byte [eax]
xor al, 1
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x438d94
push 0
xor ecx, ecx
mov edx, 1
mov eax, 6
call fcn.00434f08
test eax, eax
sete byte [ebp - 1]
cmp byte [ebp - 1], 0
je 0x438d94
mov eax, dword [0x43b97c]
mov al, byte [eax]
xor al, 1
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x438e01
mov eax, dword [0x43ba30]
cmp byte [eax], 0
jne 0x438e01
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
cmp byte [eax + 0x49], 0
je 0x438dce
mov eax, dword [0x43b9c8]
cmp byte [eax], 0
jne 0x438dce
mov edx, 0x439110
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
mov cl, 1
call fcn.00423c3c
mov edx, 0x439110
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00423a90
test al, al
je 0x438e01
push 0
xor ecx, ecx
xor edx, edx
mov eax, 0x16
call fcn.00434f08
mov eax, dword [0x43b97c]
mov al, byte [eax]
xor al, 1
mov byte [ebp - 1], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x438f6b
cmp byte [ebp - 1], 0
je 0x438e1c
call fcn.0042c2f0
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
jne 0x438eae
mov edx, 0x439110
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00423c3c
mov eax, dword [0x43ba14]
mov byte [eax], 0
mov eax, dword [0x43b9a8]
cmp byte [eax], 0
jne 0x438eae
mov eax, dword [0x43ba54]
mov eax, dword [eax]
call fcn.0041c094
test eax, eax
jle 0x438eae
lea edx, [ebp - 0x34]
mov eax, 0x12
call fcn.0042a678
mov eax, dword [ebp - 0x34]
mov edx, 0x2ee
call fcn.00428c00
xor eax, eax
push ebp
push 0x438ea7
push dword fs:[eax]
mov dword fs:[eax], esp
call fcn.004123e4
mov eax, dword [0x43ba54]
mov eax, dword [eax]
call fcn.00429b48
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x438eae
call fcn.00428c2c
ret
mov eax, dword [0x43ba14]
mov al, byte [eax]
xor al, 1
and al, byte [ebp - 0x2d]
je 0x438ecf
push 1
xor edx, edx
mov dl, byte [ebp - 1]
xor ecx, ecx
mov eax, 5
call fcn.00434f08
mov edx, 0x439110
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
xor ecx, ecx
call fcn.00423a90
mov byte [0x43c860], al
mov eax, dword [0x43b98c]
mov eax, dword [eax]
call fcn.004355b4
mov eax, dword [ebp - 0x10]
call fcn.00407170
mov eax, dword [0x43b9e0]
cmp dword [eax], 0
je 0x438f12
mov eax, dword [0x43b9e0]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_CloseHandle_1
mov eax, dword [0x43ba34]
cmp dword [eax], 0
je 0x438f29
mov eax, dword [0x43ba34]
mov eax, dword [eax]
push eax
call sub.KERNEL32.DLL_FreeLibrary_1
call fcn.004123e4
mov eax, dword [0x43b958]
mov eax, dword [eax]
call fcn.00402c9c
mov eax, dword [0x43ba6c]
mov eax, dword [eax]
call fcn.00402c9c
mov eax, dword [0x43ba70]
mov eax, dword [eax]
push eax
call sub.user32.dll_DestroyWindow
mov eax, dword [0x43ba5c]
mov eax, dword [eax]
push eax
call sub.user32.dll_DestroyIcon
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x438fa2
lea eax, [ebp - 0x54]
call fcn.004035dc
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.00403600
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.00403600
ret