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

Disassembly:
sub esp, 0x5c
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov eax, 0x4d0d38
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push edi
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0x1e
nop word [eax + eax]
cmp dword [0x4d4058], 0
mov edi, dword [eax]
mov dword [esp + 0x10], edi
jne 0x420b56
cmp dword [0x4d4088], 0
jne 0x420b2e
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x420b4f
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x1c]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x420bd6
mov ebp, dword [esp + 0x10]
lea ecx, [ebp + 1]
mov al, byte [ebp]
inc ebp
test al, al
jne 0x420b78
sub ebp, ecx
lea eax, [ebp + 0x18]
push eax
call fcn.004340b0
mov edi, eax
lea ecx, [ebp + 1]
push ecx
push dword [esp + 0x18]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x2c]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov ebp, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add esp, 0x18
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edi, eax
push 0x4d405c
call ebp
mov eax, dword [esp + 0x14]
mov dword [eax + 0xc], edi
add eax, 0x10
sub dword [esp + 0x18], 1
mov dword [esp + 0x14], eax
jne 0x420af0
cmp dword [0x4d4058], 0
mov edi, dword [str.__msgDestructor]
mov dword [esp + 0x18], edi
jne 0x420c60
cmp dword [0x4d4088], 0
jne 0x420c38
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x420c59
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x20]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x420cdf
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420c82
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x30]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d0f24], edi
mov edi, dword [str.__msgOnError]
mov dword [esp + 0x18], edi
jne 0x420d56
cmp dword [0x4d4088], 0
jne 0x420d2e
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x420d4f
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x24]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x420dd5
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420d78
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x34]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d0f34], edi
mov edi, dword [str.CLASSNAME]
mov dword [esp + 0x18], edi
jne 0x420e4c
cmp dword [0x4d4088], 0
jne 0x420e24
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x420e45
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x28]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x420ecd
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420e70
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x38]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1074], edi
mov edi, dword [str.CLASSH]
mov dword [esp + 0x18], edi
jne 0x420f44
cmp dword [0x4d4088], 0
jne 0x420f1c
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x420f3d
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x2c]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x420fc3
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x420f66
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x3c]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1084], edi
mov edi, dword [str.CLASSSEL]
mov dword [esp + 0x18], edi
jne 0x42103a
cmp dword [0x4d4088], 0
jne 0x421012
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421033
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x30]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x4210bd
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421060
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x40]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1094], edi
mov edi, dword [str.EXEC]
mov dword [esp + 0x18], edi
jne 0x421134
cmp dword [0x4d4088], 0
jne 0x42110c
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x42112d
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x34]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x4211b3
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421156
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x44]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d10a4], edi
mov edi, dword [str.NAME]
mov dword [esp + 0x18], edi
jne 0x42122a
cmp dword [0x4d4088], 0
jne 0x421202
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421223
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x38]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x4212ad
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421250
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x48]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d10b4], edi
mov edi, dword [0x4d1048]
mov dword [esp + 0x18], edi
jne 0x421324
cmp dword [0x4d4088], 0
jne 0x4212fc
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x42131d
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x3c]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x4213a3
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421346
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x4c]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1054], edi
mov edi, dword [str.SYMBOL]
mov dword [esp + 0x18], edi
jne 0x42141a
cmp dword [0x4d4088], 0
jne 0x4213f2
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421413
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x40]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x42149d
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421440
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x50]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1064], edi
mov edi, dword [str.KEYS]
mov dword [esp + 0x18], edi
jne 0x421514
cmp dword [0x4d4088], 0
jne 0x4214ec
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x42150d
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x44]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421593
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421536
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x54]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d10c4], edi
mov edi, dword [str.VALUES]
mov dword [esp + 0x18], edi
jne 0x42160a
cmp dword [0x4d4088], 0
jne 0x4215e2
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421603
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x48]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x42168d
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421630
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x58]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d10d4], edi
mov edi, dword [str.__ENUMINDEX]
mov dword [esp + 0x18], edi
jne 0x421704
cmp dword [0x4d4088], 0
jne 0x4216dc
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x4216fd
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x4c]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421783
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421726
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x5c]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d10e4], edi
mov edi, dword [str.__ENUMBASE]
mov dword [esp + 0x18], edi
jne 0x4217fa
cmp dword [0x4d4088], 0
jne 0x4217d2
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x4217f3
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x50]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x42187d
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421820
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x60]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d10f4], edi
mov edi, dword [str.__ENUMKEY]
mov dword [esp + 0x18], edi
jne 0x4218f4
cmp dword [0x4d4088], 0
jne 0x4218cc
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x4218ed
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x54]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421973
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421916
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x64]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1104], edi
mov edi, dword [str.__ENUMVALUE]
mov dword [esp + 0x18], edi
jne 0x4219ea
cmp dword [0x4d4088], 0
jne 0x4219c2
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x4219e3
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x58]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421a6d
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421a10
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x68]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1114], edi
mov edi, dword [str.__ENUMISFIRST]
mov dword [esp + 0x18], edi
jne 0x421ae4
cmp dword [0x4d4088], 0
jne 0x421abc
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421add
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421b63
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421b06
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x6c]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1124], edi
mov edi, dword [str.__ENUMISLAST]
mov dword [esp + 0x18], edi
jne 0x421bda
cmp dword [0x4d4088], 0
jne 0x421bb2
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421bd3
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x60]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421c5d
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421c00
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x70]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1134], edi
mov edi, dword [str.__WITHOBJECT]
mov dword [esp + 0x18], edi
jne 0x421cd4
cmp dword [0x4d4088], 0
jne 0x421cac
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421ccd
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x64]
push eax
push edi
call fcn.00410a40
mov edi, eax
add esp, 8
test edi, edi
jne 0x421d53
mov ecx, dword [esp + 0x18]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421cf6
sub ecx, edx
mov dword [esp + 0x14], ecx
lea eax, [ecx + 0x18]
push eax
call fcn.004340b0
mov ecx, dword [esp + 0x18]
mov edi, eax
inc ecx
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x74]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
mov esi, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
add esp, 0x18
mov edi, eax
push 0x4d405c
call ebp
cmp dword [0x4d4058], 0
mov dword [0x4d1144], edi
mov edi, dword [str.___WITHOBJECT]
mov dword [esp + 0x18], edi
jne 0x421dca
cmp dword [0x4d4088], 0
jne 0x421da2
push 0x4d4094
call ebx
push 0x4d40ac
call ebx
push 0x4d40c4
call ebx
push 0x4d40dc
call ebx
mov dword [0x4d4088], 1
push 0x4d4094
call esi
cmp dword [0x4d4058], 0
jne 0x421dc3
push 0x4d405c
call ebx
mov dword [0x4d4058], 1
push 0x4d4094
call ebp
push 0x4d405c
call esi
lea eax, [esp + 0x68]
push eax
push edi
call fcn.00410a40
mov esi, eax
add esp, 8
test esi, esi
jne 0x421e41
mov ebx, edi
lea ecx, [ebx + 1]
nop word [eax + eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x421df0
sub ebx, ecx
lea eax, [ebx + 0x18]
push eax
call fcn.004340b0
mov edi, eax
lea ecx, [ebx + 1]
push ecx
push dword [esp + 0x20]
lea esi, [edi + 0x14]
push esi
call fcn.004a34e0
push dword [esp + 0x78]
mov ecx, dword [0x4d407c]
xor eax, eax
push edi
mov dword [edi + 0x10], ecx
mov dword [0x4d407c], edi
mov dword [edi], esi
mov word [edi + 4], ax
mov dword [edi + 8], eax
mov dword [edi + 0xc], eax
call fcn.00410930
add esp, 0x18
mov esi, eax
push 0x4d405c
call ebp
mov eax, 0x3ffe
mov dword [0x4d1154], esi
mov word [0x4d404c], ax
xor eax, eax
push 0xfffc
mov word [0x4d4050], ax
call fcn.004340b0
add esp, 4
mov dword [0x4d4048], eax
mov dword [eax], 0
call fcn.0042ebb0
pop edi
pop esi
pop ebp
mov dword [0x4d4054], eax
pop ebx
add esp, 0x5c
ret