Function at 0x5fbaf4
Capabilities:
Inspect load icon resource

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff38
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 0xc8], ebx
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xc0], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0x5c], ebx
mov byte [ebp - 9], cl
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5fc4fe
push dword fs:[eax]
mov dword fs:[eax], esp
mov ecx, dword [0x639dd4]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x628c80]
call dword [eax + 0x3c]
mov dword [ebp - 0x10], eax
mov eax, dword [0x639dd4]
mov eax, dword [eax]
mov dl, byte [eax + 0x41]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov dl, 3
mov eax, dword [ebp - 0x10]
call fcn.005bc668
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov edx, dword [0x5b114c]
call fcn.00408774
test al, al
je 0x5fbb9f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x74]
call fcn.005001d4
mov edx, eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x74]
call fcn.005001dc
jmp 0x5fbbe7
mov eax, dword [ebp - 4]
cmp dword [eax + 0x110], 0
je 0x5fbbe7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x110]
mov eax, dword [eax + 4]
mov edx, dword [0x5b114c]
call fcn.00408774
test al, al
je 0x5fbbe7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x110]
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x74]
call fcn.005001d4
mov edx, eax
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x74]
call fcn.005001dc
mov eax, dword [ebp - 0x10]
call fcn.005bca40
mov edx, dword [ebp - 0x10]
mov edx, dword [edx + 0x74]
call fcn.005019e8
xor edx, edx
mov eax, dword [ebp - 0x10]
call fcn.005bcfcc
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x5ee218]
call fcn.004c04dc
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x10]
mov dword [eax + 0x40], edx
mov eax, dword [ebp - 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc51c
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fbc58
mov ecx, 1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x10]
call fcn.004858ac
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x78]
mov dword [eax + 0x23c], edx
mov dword [eax + 0x238], 0x5ee440
mov eax, dword [ebp - 0x10]
call fcn.005bca40
lea edx, [ebp - 0x18]
call fcn.005ee340
push 4
mov eax, dword [ebp - 0x18]
push eax
push 8
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x1c], eax
push 8
mov eax, dword [ebp - 0x14]
push eax
push 8
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x20], eax
push 4
mov eax, dword [ebp - 0x18]
push eax
push 0xa
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x24], eax
push 8
mov eax, dword [ebp - 0x14]
push eax
push 0xa
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x28], eax
push 4
mov eax, dword [ebp - 0x18]
push eax
push 0x32
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0x51], 0
mov al, byte [ebp - 0x51]
cmp al, 0xf
ja 0x5fbce6
and eax, 0x7f
bt word [ebp + 0x10], ax
jae 0x5fbd4f
mov dl, byte [ebp - 0x51]
lea ecx, [ebp - 0x5c]
mov eax, dword [ebp - 4]
call fcn.005fba1c
push 0
lea eax, [ebp - 0xb4]
push eax
xor ecx, ecx
xor edx, edx
xor eax, eax
call fcn.00411ecc
mov eax, dword [ebp - 0x10]
call fcn.0052a690
or eax, 0x420
push eax
lea eax, [ebp - 0xb4]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x5c]
call fcn.0040b0b0
push eax
mov eax, dword [ebp - 0x10]
call fcn.005bca40
call fcn.00501af0
push eax
call sub.user32.dll_DrawTextW
mov eax, dword [ebp - 0xac]
sub eax, dword [ebp - 0xb4]
add eax, 8
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
cmp eax, dword [ebp - 0x50]
jle 0x5fbd5d
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x50], eax
inc byte [ebp - 0x51]
cmp byte [ebp - 0x51], 0xc
jne 0x5fbcd7
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x2c], eax
push 8
mov eax, dword [ebp - 0x14]
push eax
push 0xe
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x30], eax
push 4
mov eax, dword [ebp - 0x18]
push eax
push 4
call sub.kernel32.dll_MulDiv
mov dword [ebp - 0x34], eax
push 0
mov eax, dword [0x63a038]
mov eax, dword [eax]
call fcn.005c2148
sar eax, 1
jns 0x5fbda5
adc eax, 0
push eax
push 0
push 0
lea eax, [ebp - 0xb4]
push eax
call sub.user32.dll_SetRect
mov eax, dword [ebp - 0x10]
call fcn.005bca40
call fcn.00501af0
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
je 0x5fbdec
mov eax, dword [ebp - 0x88]
sub eax, 4
mov eax, dword [eax]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x10]
call fcn.0052a690
or eax, 0x450
push eax
lea eax, [ebp - 0xb4]
push eax
mov eax, dword [ebp - 0x88]
inc eax
push eax
mov eax, dword [ebp - 8]
call fcn.0040b0b0
push eax
mov eax, dword [ebp - 0x8c]
push eax
call sub.user32.dll_DrawTextW
xor eax, eax
mov al, byte [ebp - 9]
mov eax, dword [eax*4 + 0x628cd0]
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x58], 0
je 0x5fbe5b
mov eax, dword [ebp - 0x24]
add eax, 0x20
add dword [ebp - 0x40], eax
cmp dword [ebp - 0x44], 0x20
jge 0x5fbe5b
mov dword [ebp - 0x44], 0x20
xor eax, eax
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x51], 0
mov al, byte [ebp - 0x51]
cmp al, 0xf
ja 0x5fbe73
and eax, 0x7f
bt word [ebp + 0x10], ax
jae 0x5fbe78
inc dword [ebp - 0x38]
inc byte [ebp - 0x51]
cmp byte [ebp - 0x51], 0xc
jne 0x5fbe64
xor eax, eax
mov dword [ebp - 0x3c], eax
cmp dword [ebp - 0x38], 0
je 0x5fbe9f
mov eax, dword [ebp - 0x2c]
imul dword [ebp - 0x38]
mov edx, dword [ebp - 0x38]
dec edx
imul edx, dword [ebp - 0x34]
add eax, edx
mov dword [ebp - 0x3c], eax
mov edx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x40]
call fcn.005ee314
mov edx, eax
mov eax, dword [ebp - 0x1c]
add eax, eax
add edx, eax
mov eax, dword [ebp - 0x10]
call fcn.005bb618
mov edx, dword [ebp - 0x44]
add edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x20]
add eax, eax
add edx, eax
mov eax, dword [ebp - 0x10]
call fcn.005bb644
mov eax, dword [0x63a038]
mov eax, dword [eax]
mov eax, dword [eax + 0x70]
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x5fbef3
mov eax, dword [ebp - 0x70]
call fcn.005bc9a4
mov dword [ebp - 0x6c], eax
jmp 0x5fbf54
mov eax, dword [0x63a038]
mov eax, dword [eax]
xor edx, edx
call fcn.005c2170
mov dword [ebp - 0x6c], eax
mov eax, dword [0x63a038]
mov eax, dword [eax]
call fcn.005c2184
dec eax
test eax, eax
jl 0x5fbf54
inc eax
mov dword [ebp - 0x7c], eax
mov dword [ebp - 0x74], 0
mov eax, dword [0x63a038]
mov eax, dword [eax]
mov edx, dword [ebp - 0x74]
call fcn.005c2170
call fcn.005c1cd0
test al, al
je 0x5fbf4c
mov eax, dword [0x63a038]
mov eax, dword [eax]
mov edx, dword [ebp - 0x74]
call fcn.005c2170
mov dword [ebp - 0x6c], eax
jmp 0x5fbf54
inc dword [ebp - 0x74]
dec dword [ebp - 0x7c]
jne 0x5fbf20
mov eax, dword [ebp - 0x6c]
call fcn.005c1c5c
mov edx, eax
sar edx, 1
jns 0x5fbf65
adc edx, 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x58]
sar eax, 1
jns 0x5fbf72
adc eax, 0
sub edx, eax
mov eax, dword [ebp - 0x10]
call fcn.005c1364
mov eax, dword [ebp - 0x6c]
call fcn.005c1c28
mov edx, eax
sar edx, 1
jns 0x5fbf8d
adc edx, 0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x5c]
sar eax, 1
jns 0x5fbf9a
adc eax, 0
sub edx, eax
mov eax, dword [ebp - 0x10]
call fcn.005c13a0
cmp byte [ebp - 9], 4
je 0x5fc0aa
mov al, byte [ebp - 9]
sub al, 1
jb 0x5fbfc8
je 0x5fc002
dec al
je 0x5fc073
dec al
je 0x5fc03c
jmp 0x5fc0d3
push 1
push 1
lea eax, [ebp - 0xb8]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x5c]
mov ecx, 0x5fc540
mov eax, dword [ebp - 4]
call fcn.005f876c
mov eax, dword [ebp - 0xb8]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
jmp 0x5fc0d3
push 1
push 1
lea eax, [ebp - 0xbc]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x5c]
mov ecx, 0x5fc578
mov eax, dword [ebp - 4]
call fcn.005f876c
mov eax, dword [ebp - 0xbc]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
jmp 0x5fc0d3
push 1
push 1
lea eax, [ebp - 0xc0]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x5c]
mov ecx, 0x5fc590
mov eax, dword [ebp - 4]
call fcn.005f876c
mov eax, dword [ebp - 0xc0]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
jmp 0x5fc0d3
push 1
push 1
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x5c]
mov ecx, 0x5fc5ac
mov eax, dword [ebp - 4]
call fcn.005f876c
mov eax, dword [ebp - 0xc4]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
jmp 0x5fc0d3
lea edx, [ebp - 0xc8]
mov eax, dword [0x639dd4]
mov eax, dword [eax]
call fcn.005c4e9c
mov eax, dword [ebp - 0xc8]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
cmp dword [ebp - 0x58], 0
je 0x5fc179
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x545efc]
call fcn.00547178
mov dword [ebp - 0x80], eax
mov edx, 0x5fc5d0
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x80]
mov ecx, dword [eax]
call dword [ecx + 0x8c]
mov eax, dword [ebp - 0x58]
push eax
push 0
call sub.user32.dll_LoadIconW
push eax
mov eax, dword [ebp - 0x80]
mov eax, dword [eax + 0x1c0]
call fcn.005043a0
pop edx
call fcn.005095f0
push 0xb
call sub.user32.dll_GetSystemMetrics
push eax
push 0xc
call sub.user32.dll_GetSystemMetrics
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x80]
mov ebx, dword [eax]
call dword [ebx + 0xb0]
mov eax, dword [ebp - 0x80]
mov si, 0xffc6
call fcn.00408860
test al, al
je 0x5fc179
mov eax, dword [ebp - 0x10]
call fcn.00527064
mov edx, eax
mov eax, dword [ebp - 0x80]
sub edx, dword [eax + 0x50]
mov eax, dword [ebp - 0x80]
sub edx, dword [eax + 0x58]
mov eax, dword [ebp - 0x80]
call fcn.00526d30
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x628c84]
call dword [eax + 0x3c]
mov dword [ebp - 0x68], eax
mov edx, 0x5fc5e8
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
call dword [ecx + 0x8c]
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc604
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fc1dd
mov ecx, 1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
call fcn.004858ac
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x94]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc624
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fc216
mov ecx, 1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
call fcn.004858ac
mov eax, dword [ebp - 0x68]
mov eax, dword [eax]
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc648
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fc24f
mov ecx, 1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x68]
call fcn.004858ac
mov eax, dword [ebp - 0xa8]
cmp eax, dword [ebp - 0x44]
jge 0x5fc263
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 8]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
lea edx, [ebp - 0xb4]
mov eax, dword [ebp - 0x68]
call fcn.00527020
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0xac]
add eax, dword [ebp - 0x1c]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x10]
mov dl, byte [eax + 0x71]
mov eax, dword [ebp - 0x68]
mov ecx, dword [eax]
call dword [ecx + 0x94]
mov eax, dword [ebp - 0x68]
mov si, 0xffc6
call fcn.00408860
test al, al
je 0x5fc2c9
mov eax, dword [ebp - 0x10]
call fcn.00527064
sub eax, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x68]
sub eax, dword [edx + 0x58]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0xac]
push eax
mov eax, dword [ebp - 0xa8]
push eax
mov ecx, dword [ebp - 0x20]
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x68]
mov ebx, dword [eax]
call dword [ebx + 0xb0]
test byte [ebp + 0x10], 4
je 0x5fc2f4
mov byte [ebp - 0x52], 2
jmp 0x5fc304
test byte [ebp + 0x10], 1
je 0x5fc300
mov byte [ebp - 0x52], 0
jmp 0x5fc304
mov byte [ebp - 0x52], 5
test byte [ebp + 0x10], 8
je 0x5fc310
mov byte [ebp - 0x53], 3
jmp 0x5fc320
test byte [ebp + 0x10], 2
je 0x5fc31c
mov byte [ebp - 0x53], 1
jmp 0x5fc320
mov byte [ebp - 0x53], 2
cmp byte [ebp + 0xc], 2
je 0x5fc32c
mov al, byte [ebp + 0xc]
mov byte [ebp - 0x52], al
cmp byte [ebp + 8], 3
je 0x5fc338
mov al, byte [ebp + 8]
mov byte [ebp - 0x53], al
mov eax, dword [ebp - 0x10]
call fcn.00527064
sub eax, dword [ebp - 0x3c]
sar eax, 1
jns 0x5fc34a
adc eax, 0
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x51], 0
mov al, byte [ebp - 0x51]
cmp al, 0xf
ja 0x5fc360
and eax, 0x7f
bt word [ebp + 0x10], ax
jae 0x5fc4cb
mov ecx, dword [ebp - 0x10]
mov dl, 1
mov eax, dword [0x628c8c]
call dword [eax + 0x3c]
mov dword [ebp - 0x64], eax
xor eax, eax
mov al, byte [ebp - 0x51]
mov edx, dword [eax*4 + 0x628eb4]
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
call dword [ecx + 0x28]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x64]
mov ecx, dword [eax]
call dword [ecx + 0x8c]
mov dl, byte [ebp - 0x51]
lea ecx, [ebp - 0x5c]
mov eax, dword [ebp - 4]
call fcn.005fba1c
mov eax, dword [ebp - 0x5c]
push eax
mov ecx, 0x5fc55c
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 4]
call fcn.005fb8fc
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc664
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fc3fa
xor eax, eax
mov al, byte [ebp - 0x51]
mov ecx, dword [eax*4 + 0x628ee4]
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
call fcn.004858ac
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov dword [ebp - 0xa0], eax
mov eax, dword [ebp - 0xa0]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc688
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fc446
mov al, byte [ebp - 0x51]
cmp al, byte [ebp - 0x52]
jne 0x5fc446
mov ecx, 1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
call fcn.004858ac
mov edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x10]
call fcn.005be1a8
mov eax, dword [ebp - 0x64]
mov eax, dword [eax]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
add eax, 0xffffffb8
mov eax, dword [eax]
mov edx, 0x5fc6a4
call fcn.00484f3c
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
je 0x5fc487
mov al, byte [ebp - 0x51]
cmp al, byte [ebp - 0x53]
jne 0x5fc487
mov ecx, 1
mov edx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x64]
call fcn.004858ac
mov eax, dword [ebp - 0x2c]
push eax
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x44]
add ecx, dword [ebp - 0x20]
add ecx, dword [ebp - 0x28]
mov edx, dword [ebp - 0x48]
mov eax, dword [ebp - 0x64]
mov ebx, dword [eax]
call dword [ebx + 0xb0]
mov eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x34]
add dword [ebp - 0x48], eax
cmp byte [ebp - 0x51], 0xa
jne 0x5fc4cb
mov eax, dword [ebp - 0x64]
mov edx, dword [ebp - 0x78]
mov dword [eax + 0x124], edx
mov dword [eax + 0x120], 0x5ee3c4
inc byte [ebp - 0x51]
cmp byte [ebp - 0x51], 0xc
jne 0x5fc351
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5fc505
lea eax, [ebp - 0xc8]
mov edx, 5
call fcn.0040a304
lea eax, [ebp - 0x5c]
call fcn.0040a2a4
ret