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

Disassembly:
push 0xffffffffffffffff
push 0x545b08
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x68
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x3c]
call fcn.00473490
xor ebp, ebp
lea eax, [esp + 0x3c]
push ebp
push ebp
push ebp
push eax
mov ecx, esi
mov dword [esp + 0x90], ebp
call fcn.0047ce90
mov edi, dword [esp + 0x88]
cmp edi, 0x1010023
jne 0x4a2cb5
mov ecx, dword [esi + 0x80]
or edi, 0xffffffff
mov dword [esi + 0x7c], ecx
lea ecx, [esi + 0xa4]
mov dword [esi + 0x9c], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], edi
mov dword [esi + 0xa0], ebp
call fcn.00473690
lea ecx, [esi + 0xb8]
call fcn.00473690
push 0x7fffffff
push ebp
mov ecx, esi
call fcn.004a6cc0
mov edx, dword [esi + 0x1c]
push ebp
push ebp
push edx
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_UpdateWindow]
mov dword [esp + 0x80], edi
mov dword [esp + 0x3c], 0x54d7d0
jmp 0x4a3e4d
xor ecx, ecx
mov eax, 0x58fa0c
mov dword [esp + 0x14], ecx
mov ebx, 4
cmp edi, dword [eax]
je 0x4a2cd4
add eax, ebx
cmp eax, 0x58fa24
jl 0x4a2cc5
jmp 0x4a2cdd
mov ecx, 1
mov dword [esp + 0x14], ecx
cmp ecx, ebp
mov dword [esp + 0x10], ebp
jne 0x4a2e00
cmp edi, 0x101001b
je 0x4a2d1d
cmp edi, 0x101001c
je 0x4a2d1d
mov eax, 0x58fa24
cmp edi, dword [eax]
je 0x4a2d10
add eax, ebx
cmp eax, 0x58fa3c
jl 0x4a2cfe
jmp 0x4a2e85
mov dword [esp + 0x10], 1
jmp 0x4a2de7
mov ecx, dword [0x596a0c]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], 1
call fcn.00518bc5
lea edx, [esp + 0x3c]
lea eax, [esp + 0x64]
push edx
mov edx, dword [esi + 0x78]
push ebp
lea ecx, [esp + 0x20]
push eax
mov eax, dword [esi + 0x74]
push ecx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x98], 2
call fcn.004965c0
cmp eax, ebp
je 0x4a2dba
mov edx, dword [esi + 0x80]
lea ecx, [esp + 0x64]
push ecx
push eax
lea eax, [esp + 0x34]
push edx
push eax
mov ecx, esi
call fcn.00496e00
mov ecx, dword [eax]
cmp edi, 0x101001b
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 4]
jne 0x4a2d96
xor edx, edx
cmp eax, ebp
sete dl
jmp 0x4a2da2
mov ecx, dword [esp + 0x6c]
xor edx, edx
dec ecx
cmp eax, ecx
setge dl
mov eax, edx
cmp eax, ebp
je 0x4a2db2
mov dword [esp + 0x14], 1
jmp 0x4a2dba
mov dword [esp + 0x10], 1
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], 1
call fcn.00518bf8
lea ecx, [esp + 0x18]
mov byte [esp + 0x80], 0
call fcn.00519976
cmp dword [esp + 0x10], 1
jne 0x4a2e7b
cmp dword [esi + 0x90], 0xffffffff
je 0x4a2e7b
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], ebp
mov ecx, dword [esi + 0x90]
or eax, 0xffffffff
cmp ecx, eax
je 0x4a2e2a
cmp dword [esi + 0x98], eax
je 0x4a2ee7
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x9c]
cmp eax, ecx
je 0x4a2ee7
lea edi, [esi + 0xa4]
or eax, 0xffffffff
mov ecx, edi
mov dword [esi + 0x9c], eax
mov dword [esi + 0x98], eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x90], eax
mov dword [esi + 0xa0], ebp
call fcn.00473690
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esi + 0x90], ecx
mov dword [esi + 0x94], edx
mov dword [edi + 0x10], ebp
mov eax, dword [esi + 0xc8]
cmp eax, ebp
jne 0x4a2ec8
xor ecx, ecx
jmp 0x4a2ece
cmp dword [esp + 0x14], ebp
jne 0x4a2e00
xor ecx, ecx
mov eax, 0x58f9d0
cmp edi, dword [eax]
je 0x4a2e9a
add eax, ebx
inc ecx
cmp eax, 0x58fa0c
jl 0x4a2e8c
cmp ecx, 0xf
jne 0x4a2eb9
mov edx, dword [esp + 0x10]
xor eax, eax
cmp edx, ebp
push 1
sete al
lea ecx, [esp + 0x40]
push eax
push ecx
mov ecx, esi
call fcn.004a69c0
cmp dword [esp + 0x10], ebp
je 0x4a2ee7
mov edx, dword [esi + 0x7c]
mov dword [esp + 0x2c], edx
jmp 0x4a2ee7
mov ecx, dword [esi + 0xc0]
push eax
push ecx
mov ecx, edi
call fcn.00473d50
mov eax, dword [esi + 0x7c]
mov edi, dword [esp + 0x88]
mov dword [esi + 0xa0], eax
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x78]
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x50]
mov dword [esp + 0x1c], edx
call fcn.00473490
mov eax, dword [esi + 0x5c]
mov byte [esp + 0x80], 3
cmp dword [eax + 0x2d8], 1
je 0x4a2f29
cmp dword [eax + 0x2d4], ebp
jne 0x4a2f29
mov eax, dword [esi]
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call dword [eax + 0xd0]
lea eax, [edi - 0x1010001]
cmp eax, 0x41
ja case.0x4a2f40.16842786
xor edx, edx
mov dl, byte [eax + 0x4a3f30]
jmp dword [edx*4 + 0x4a3ea8]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
push ebp
push 1
push ebp
push eax
push ecx
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c94
cmp dword [esi + 0x90], 0xffffffff
je case.0x4a2f40.16842753
mov eax, dword [esi + 0x98]
cmp eax, 0xffffffff
je case.0x4a2f40.16842753
cmp eax, dword [esi + 0x74]
jne case.0x4a2f40.16842753
mov ecx, esi
call fcn.004abc30
mov ecx, dword [esi + 0x74]
dec eax
cmp ecx, eax
je 0x4a3c82
cmp edi, 0x1010001
je 0x4a3076
cmp edi, 0x101001b
je 0x4a3076
mov edi, dword [esi + 0x74]
mov ecx, esi
call fcn.004abc30
dec eax
cmp edi, eax
jne 0x4a306f
cmp dword [esp + 0x88], 0x1010002
jne 0x4a3c82
push ebp
push ebp
push ebp
lea edx, [esp + 0x2c]
push ebp
lea eax, [esp + 0xa4]
push edx
push eax
push ebp
push ebp
push edi
mov ecx, esi
call fcn.0047e860
cmp eax, 0xd
jne 0x4a3c82
mov ecx, dword [esp + 0x94]
cmp dword [ecx + 0xc8], ebp
jne 0x4a3006
xor edx, edx
jmp 0x4a300c
mov edx, dword [ecx + 0xc0]
cmp dword [ecx + 0x64], ebp
jne 0x4a3015
xor eax, eax
jmp 0x4a3018
mov eax, dword [ecx + 0x5c]
mov edi, dword [esp + 0x20]
mov eax, dword [eax + edi*4]
lea edi, [eax + edx]
push edi
call fcn.004cd260
cmp eax, 1
jne 0x4a3c82
cmp byte [edi], 0x6a
jne 0x4a3046
lea ecx, [edi + 1]
call fcn.004ca2f0
test eax, eax
jne 0x4a3c82
mov edx, dword [esi]
push ebp
push ebp
push 2
push 0x2020002
mov ecx, esi
call dword [edx + 0xe0]
mov eax, dword [esi + 0x74]
push ebp
push 1
push ebp
inc eax
push ebp
push eax
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov edi, 1
jmp 0x4a3082
cmp dword [esi + 0x74], ebp
je 0x4a3c82
or edi, 0xffffffff
mov ecx, dword [0x596a0c]
mov dword [esp + 0x90], ecx
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], bl
call fcn.00518bc5
lea edx, [esp + 0x3c]
lea eax, [esp + 0x64]
push edx
mov edx, dword [esi + 0x78]
push ebp
lea ecx, [esp + 0x98]
push eax
mov eax, dword [esi + 0x74]
push ecx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x98], 5
call fcn.004965c0
cmp eax, ebp
je 0x4a3146
mov edx, dword [esi + 0x80]
lea ecx, [esp + 0x64]
push ecx
push eax
lea eax, [esp + 0x3c]
push edx
push eax
mov ecx, esi
call fcn.00496e00
mov ecx, dword [eax]
cmp edi, 0xffffffff
mov dword [esp + 0x24], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x28], eax
jne 0x4a3134
cmp eax, ebp
jle 0x4a3146
lea edx, [esp + 0x3c]
dec eax
push edx
push ecx
push eax
mov ecx, esi
call fcn.004966f0
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], bl
call fcn.00518bf8
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
mov edx, dword [esp + 0x6c]
dec edx
cmp eax, edx
jge 0x4a3146
lea edx, [esp + 0x3c]
inc eax
push edx
push ecx
jmp 0x4a3103
lea eax, [esp + 0x24]
lea ecx, [esp + 0x3c]
push eax
push ecx
mov ecx, esi
call fcn.00496c00
mov ecx, dword [esi + 0x74]
mov eax, dword [esi + 0x78]
push ebp
lea edx, [esp + 0x40]
push 1
push edx
add ecx, edi
push eax
push ecx
mov ecx, esi
call fcn.004a5a10
push 1
push ebp
push ebp
mov ecx, esi
call fcn.004a6440
test eax, eax
je 0x4a318e
push ebp
push ebp
lea edx, [esp + 0x44]
push ebp
push edx
mov ecx, esi
call fcn.0047ce90
mov edx, dword [esp + 0x24]
xor ecx, ecx
cmp edi, 0xffffffff
lea eax, [esp + 0x3c]
setne cl
push eax
push ecx
push edx
mov ecx, esi
call fcn.004a05c0
jmp 0x4a310b
push ebp
lea eax, [esp + 0x40]
push 1
push eax
push ebp
push ebp
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov ecx, esi
call fcn.004abc30
mov edi, eax
push ebp
dec edi
mov ecx, esi
push edi
call fcn.00499c00
cmp eax, 0xffffffff
je 0x4a31f5
push eax
mov ecx, esi
call fcn.004a6940
push ebp
push 1
push ebp
push ebp
push edi
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
push ebp
lea ecx, [esp + 0x40]
push 1
push ecx
push ebp
push edi
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov eax, dword [esi + 0x74]
push ebp
lea edx, [esp + 0x40]
push 1
push edx
push ebp
push eax
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov edx, dword [esi + 0x74]
push ebp
lea ecx, [esp + 0x40]
push 1
push ecx
push 0x7fffffff
push edx
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov eax, dword [esi + 0x78]
cmp eax, ebp
jle 0x4a3262
mov edx, dword [esi + 0x74]
push ebp
lea ecx, [esp + 0x40]
push 1
dec eax
push ecx
push eax
push edx
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov eax, dword [esi + 0x74]
cmp eax, ebp
jle 0x4a3c82
push ebp
lea ecx, [esp + 0x40]
push 1
push ecx
dec eax
push 0x7fffffff
push eax
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov edx, dword [0x596a0c]
mov dword [esp + 0x90], edx
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x94]
push eax
mov eax, dword [esi + 0x78]
push ecx
mov ecx, dword [esi + 0x74]
lea edx, [esp + 0x98]
push ebp
push edx
push eax
push ecx
mov ecx, esi
mov byte [esp + 0x98], 6
call fcn.004965c0
cmp eax, ebp
je 0x4a3364
mov eax, dword [esi + 0x80]
mov ecx, dword [esp + 0x94]
cmp eax, ecx
jg 0x4a3353
cmp edi, 0x101003c
jne 0x4a32fc
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
mov eax, dword [esi + 0x78]
cmp eax, ebp
jle 0x4a3327
push ebp
lea edx, [esp + 0x40]
push 1
dec eax
push edx
push eax
mov eax, dword [esi + 0x74]
mov ecx, esi
push eax
call fcn.004a5a10
lea ecx, [esp + 0x3c]
push 1
push ecx
push ebp
push 0x7fffffff
jmp 0x4a335d
mov eax, dword [esi + 0x74]
cmp eax, ebp
jle 0x4a3364
push ebp
lea edx, [esp + 0x40]
push 1
push edx
dec eax
push 0x7fffffff
push eax
mov ecx, esi
call fcn.004a5a10
lea eax, [esp + 0x3c]
push 1
push eax
push ebp
push 0x7fffffff
jmp 0x4a335d
lea ecx, [esp + 0x3c]
push 1
push ecx
dec eax
push ebp
push eax
mov ecx, esi
call fcn.004969a0
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
mov edx, dword [0x596a0c]
mov dword [esp + 0x90], edx
mov edx, dword [esi + 0x78]
lea eax, [esp + 0x3c]
push eax
mov eax, dword [esi + 0x74]
push ebp
lea ecx, [esp + 0x98]
push ebp
push ecx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x98], 7
call fcn.004965c0
cmp eax, ebp
je 0x4a3480
mov ecx, dword [esp + 0x90]
mov eax, dword [esi + 0x80]
mov ecx, dword [ecx - 8]
cmp eax, ecx
jne 0x4a3470
cmp dword [esp + 0x88], 0x101003d
jne 0x4a33f6
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
mov eax, dword [esi + 0x74]
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
lea edx, [esp + 0xac]
push ebp
push edx
push eax
mov ecx, esi
mov dword [esp + 0xb8], ebp
call fcn.0047e860
mov ecx, dword [esp + 0x94]
mov eax, dword [esi + 0x78]
dec ecx
cmp eax, ecx
jge 0x4a3445
push ebp
lea edx, [esp + 0x40]
push 1
inc eax
push edx
push eax
mov eax, dword [esi + 0x74]
mov ecx, esi
push eax
call fcn.004a5a10
lea ecx, [esp + 0x3c]
push ebp
push ecx
push ebp
push ebp
jmp 0x4a3479
mov edi, dword [esi + 0x74]
mov ecx, esi
call fcn.004abc30
dec eax
cmp edi, eax
jge 0x4a3480
push ebp
lea edx, [esp + 0x40]
push 1
push edx
inc edi
push ebp
push edi
mov ecx, esi
call fcn.004a5a10
lea eax, [esp + 0x3c]
push ebp
push eax
push ebp
push ebp
jmp 0x4a3479
lea ecx, [esp + 0x3c]
push ebp
push ecx
inc eax
push ebp
push eax
mov ecx, esi
call fcn.004969a0
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
lea edx, [esp + 0x3c]
push 1
push edx
push ebp
push ebp
mov ecx, esi
call fcn.004969a0
jmp 0x4a3c82
lea eax, [esp + 0x3c]
push 1
push eax
push ebp
push 0x7fffffff
mov ecx, esi
call fcn.004969a0
jmp 0x4a3c82
push ebp
lea ecx, [esp + 0x28]
push ebp
push ecx
mov ecx, dword [esi + 0x74]
lea edx, [esp + 0x9c]
push ebp
lea eax, [esp + 0xa4]
push edx
push eax
push ebp
push ebp
push ecx
mov ecx, esi
call fcn.0047e860
cmp eax, 0xd
jne 0x4a3c82
mov ecx, dword [esp + 0x94]
cmp dword [ecx + 0xc8], ebp
jne 0x4a3508
xor edx, edx
jmp 0x4a350e
mov edx, dword [ecx + 0xc0]
cmp dword [ecx + 0x64], ebp
jne 0x4a3517
xor eax, eax
jmp 0x4a351a
mov eax, dword [ecx + 0x5c]
mov edi, dword [esp + 0x90]
mov eax, dword [eax + edi*4]
add eax, edx
push eax
call fcn.004cd260
test al, 2
je 0x4a3c82
mov edx, dword [esp + 0x90]
lea ecx, [esp + 0x20]
push ebp
push ecx
mov ecx, dword [esp + 0x9c]
push ebp
push edx
call fcn.004cb2d0
cmp eax, 1
jne 0x4a3c82
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x4a3c82
mov edx, dword [esp + 0x24]
push ebp
lea ecx, [esp + 0x40]
push 1
push ecx
add eax, edx
push ebp
push eax
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov ecx, dword [esi + 0x74]
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
lea eax, [esp + 0xa8]
push ebp
push eax
push ecx
mov ecx, esi
mov dword [esp + 0xb4], ebp
call fcn.0047e860
mov edx, dword [esp + 0x90]
mov eax, dword [esi + 0x78]
dec edx
cmp eax, edx
jge 0x4a35cb
mov edx, dword [esi + 0x74]
push ebp
lea ecx, [esp + 0x40]
push 1
inc eax
push ecx
push eax
push edx
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov edi, dword [esi + 0x74]
mov ecx, esi
call fcn.004abc30
dec eax
cmp edi, eax
jge 0x4a3c82
push ebp
lea eax, [esp + 0x40]
push 1
push eax
inc edi
push ebp
push edi
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c82
mov ecx, dword [0x596a0c]
mov dword [esp + 0x90], ecx
lea edx, [esp + 0x3c]
lea eax, [esp + 0x24]
push edx
mov edx, dword [esi + 0x78]
push eax
mov eax, dword [esi + 0x74]
lea ecx, [esp + 0x98]
push ebp
push ecx
push edx
push eax
mov ecx, esi
mov byte [esp + 0x98], 8
call fcn.004965c0
cmp eax, ebp
je 0x4a38f0
cmp edi, 0x101003a
je 0x4a3644
cmp edi, 0x1010040
jne 0x4a36bf
mov ecx, dword [esi + 0x80]
mov eax, dword [esp + 0x24]
cmp ecx, eax
jg 0x4a36bf
cmp edi, 0x1010040
je 0x4a3788
mov eax, dword [esi + 0x78]
cmp eax, ebp
jle 0x4a368c
push ebp
lea edx, [esp + 0x40]
push 1
dec eax
push edx
push eax
mov eax, dword [esi + 0x74]
mov ecx, esi
push eax
call fcn.004a5a10
lea ecx, [esp + 0x3c]
push 1
push ecx
push ebp
push 0x7fffffff
jmp 0x4a3781
mov eax, dword [esi + 0x74]
cmp eax, ebp
jle 0x4a3788
push ebp
lea edx, [esp + 0x40]
push 1
push edx
dec eax
push 0x7fffffff
push eax
mov ecx, esi
call fcn.004a5a10
lea eax, [esp + 0x3c]
push 1
push eax
push ebp
push 0x7fffffff
jmp 0x4a3781
mov edi, dword [esp + 0x90]
mov ecx, dword [esi + 0x80]
mov eax, dword [edi - 8]
cmp ecx, eax
mov ecx, dword [esp + 0x88]
jl 0x4a37a7
cmp ecx, 0x1010041
jne 0x4a36ff
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
cmp ecx, 0x101003b
jne 0x4a37a1
mov edx, dword [esi + 0x74]
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
lea ecx, [esp + 0xac]
push ebp
push ecx
push edx
mov ecx, esi
mov dword [esp + 0xb8], ebp
call fcn.0047e860
mov ecx, dword [esp + 0x94]
mov eax, dword [esi + 0x78]
dec ecx
cmp eax, ecx
jge 0x4a3758
push ebp
lea edx, [esp + 0x40]
push 1
inc eax
push edx
push eax
mov eax, dword [esi + 0x74]
mov ecx, esi
push eax
call fcn.004a5a10
lea ecx, [esp + 0x3c]
push ebp
push ecx
jmp 0x4a377f
mov edi, dword [esi + 0x74]
mov ecx, esi
call fcn.004abc30
dec eax
cmp edi, eax
jge 0x4a3788
push ebp
lea edx, [esp + 0x40]
push 1
push edx
inc edi
push ebp
push edi
mov ecx, esi
call fcn.004a5a10
lea eax, [esp + 0x3c]
push ebp
push eax
push ebp
push ebp
mov ecx, esi
call fcn.004969a0
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
mov dword [esi + 0x80], eax
cmp ecx, 0x1010040
jne 0x4a37b6
mov ecx, 0x101003a
jmp 0x4a37c3
cmp ecx, 0x1010041
jne 0x4a37ca
mov ecx, 0x101003b
mov dword [esp + 0x88], ecx
mov edx, dword [esi + 0x80]
cmp ecx, 0x101003a
mov al, 0x20
jne 0x4a37e9
cmp edx, ebp
jle 0x4a37e9
cmp byte [edi + edx - 1], al
jne 0x4a37e9
dec edx
cmp edx, ebp
jg 0x4a37de
xor eax, eax
or ebp, 0xffffffff
add edx, edi
mov ecx, edi
mov dword [esp + 0x94], edx
cmp dword [esp + 0x88], 0x101003a
jne 0x4a3813
cmp ecx, dword [esp + 0x94]
jae 0x4a38ae
mov dl, byte [ecx]
test dl, dl
je 0x4a38aa
cmp dl, 0x41
jl 0x4a3827
cmp dl, 0x5a
jle 0x4a386d
cmp dl, 0x61
jl 0x4a3831
cmp dl, 0x7a
jle 0x4a386d
cmp dl, 0x30
jl 0x4a383b
cmp dl, 0x39
jle 0x4a386d
cmp dl, 0x5f
je 0x4a386d
cmp dl, 0xb0
jae 0x4a386d
cmp ebp, 2
je 0x4a3893
mov ebx, dword [esp + 0x88]
mov eax, ecx
sub eax, edi
cmp ebx, 0x101003b
mov ebp, 2
jne 0x4a3893
cmp ecx, dword [esp + 0x94]
ja 0x4a38ae
jmp 0x4a3893
cmp ebp, 1
je 0x4a3893
mov ebx, dword [esp + 0x88]
mov eax, ecx
sub eax, edi
cmp ebx, 0x101003b
mov ebp, 1
jne 0x4a3893
cmp ecx, dword [esp + 0x94]
ja 0x4a38ae
test dl, 0x80
je 0x4a38a4
mov dl, byte [ecx + 1]
inc ecx
test dl, dl
je 0x4a37f9
inc ecx
jmp 0x4a37f9
sub ecx, edi
mov eax, ecx
cmp byte [eax + edi], 0x2e
jne 0x4a38bb
mov edx, eax
jmp 0x4a37e9
cmp dword [esp + 0x88], 0x101003b
jne 0x4a38dd
mov cl, byte [eax + edi]
test cl, cl
je 0x4a38dd
cmp cl, 0x20
jne 0x4a38dd
mov cl, byte [eax + edi + 1]
inc eax
test cl, cl
jne 0x4a38cf
lea ecx, [esp + 0x3c]
push 1
push ecx
push 0
push eax
mov ecx, esi
call fcn.004969a0
xor ebp, ebp
lea ecx, [esp + 0x90]
mov byte [esp + 0x80], 3
call fcn.00519976
jmp 0x4a3c82
push ebp
push ebp
push ebp
push 0x1020003
jmp 0x4a391b
push ebp
push ebp
push ebp
push 0x1020004
mov ecx, esi
call fcn.004a54b0
push 1
push ebp
push 1
mov ecx, esi
call fcn.004a6440
jmp 0x4a3c94
push ebp
lea edx, [esp + 0x40]
push 1
push edx
push ebp
push 1
mov ecx, esi
call fcn.00495cf0
push eax
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c94
push ebp
lea eax, [esp + 0x40]
push 1
push eax
push ebp
mov ecx, esi
call fcn.004a6370
push eax
mov ecx, esi
call fcn.004a5a10
jmp 0x4a3c94
lea ecx, [esp + 0x3c]
push ebp
push ecx
push 0xffffffffffffffff
mov ecx, esi
call fcn.004a4c70
jmp 0x4a3c82
lea edx, [esp + 0x3c]
push ebp
push edx
push 1
mov ecx, esi
call fcn.004a4c70
jmp 0x4a3c82
lea ecx, [esp + 0x64]
call fcn.00473490
lea eax, [esp + 0x64]
mov ecx, esi
push eax
push 1
mov byte [esp + 0x88], 9
call fcn.00495cf0
dec eax
mov ecx, esi
push eax
call fcn.00499c00
mov edi, eax
cmp edi, 0xffffffff
je 0x4a3a54
lea ecx, [esp + 0x24]
lea edx, [esp + 0x3c]
push ecx
push edx
mov ecx, esi
call fcn.00496c00
test eax, eax
je 0x4a3a43
push 1
push edi
push 1
mov ecx, esi
call fcn.00495d40
push 1
mov ecx, esi
call fcn.004a5390
cmp eax, ebp
je 0x4a3a00
push edi
mov ecx, eax
call fcn.004a6940
mov eax, dword [esi + 0x1c]
push ebp
push ebp
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebp
push ebp
lea edx, [esp + 0x2c]
push ebp
push edx
mov ecx, esi
call fcn.004a0720
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], 3
mov dword [esp + 0x64], 0x54d7d0
call fcn.00473690
jmp 0x4a3c8d
push ebp
push ebp
push ebp
push 0x1020007
mov ecx, esi
call fcn.004a54b0
jmp 0x4a3a25
push ebp
push 1
push ebp
push ebp
push ebp
mov ecx, esi
call fcn.004a5a10
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], 3
mov dword [esp + 0x64], 0x54d7d0
call fcn.00473690
jmp 0x4a3c82
lea ecx, [esp + 0x64]
call fcn.00473490
lea eax, [esp + 0x64]
mov ecx, esi
push eax
mov byte [esp + 0x84], 0xa
call fcn.004999b0
mov edi, eax
cmp edi, 0xffffffff
je 0x4a3b31
lea ecx, [esp + 0x24]
lea edx, [esp + 0x3c]
push ecx
push edx
mov ecx, esi
call fcn.00496c00
test eax, eax
je 0x4a3b04
push 1
push edi
push 1
mov ecx, esi
call fcn.00495d40
push 1
mov ecx, esi
call fcn.004a5390
cmp eax, ebp
je 0x4a3add
push edi
mov ecx, eax
call fcn.004a6940
mov eax, dword [esi + 0x1c]
push ebp
push ebp
push eax
call dword [sym.imp.USER32.dll_InvalidateRect]
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebp
push ebp
lea edx, [esp + 0x2c]
push ebp
push edx
mov ecx, esi
call fcn.004a0720
jmp 0x4a3b13
push ebp
push ebp
push ebp
push 0x1020008
mov ecx, esi
call fcn.004a54b0
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], 3
mov dword [esp + 0x64], 0x54d7d0
call fcn.00473690
jmp 0x4a3c8d
push ebp
lea eax, [esp + 0x40]
push 1
push eax
push ebp
mov ecx, esi
call fcn.004abc30
dec eax
mov ecx, esi
push eax
call fcn.004a5a10
lea ecx, [esp + 0x64]
mov byte [esp + 0x80], 3
mov dword [esp + 0x64], 0x54d7d0
call fcn.00473690
jmp 0x4a3c82
lea ecx, [esp + 0x3c]
push ecx
push ebp
push 0xffffffffffffffff
mov ecx, esi
call fcn.004aa4d0
jmp 0x4a3c82
lea edx, [esp + 0x3c]
mov ecx, esi
push edx
push 0xffffffffffffffff
call fcn.004aabd0
jmp 0x4a3c82
mov ecx, dword [esp + 0x90]
lea eax, [esp + 0x3c]
push eax
push ebp
push ecx
mov ecx, esi
call fcn.004aa4d0
jmp 0x4a3c82
mov eax, dword [esp + 0x90]
lea edx, [esp + 0x3c]
push edx
push eax
mov ecx, esi
call fcn.004aabd0
jmp 0x4a3c82
mov edx, dword [esp + 0x90]
xor ecx, ecx
cmp edi, 0x1010030
push 1
sete cl
push ecx
push edx
mov ecx, esi
call fcn.004a4260
jmp 0x4a3c82
push edi
mov ecx, esi
call fcn.004a3fb0
jmp 0x4a3c82
lea eax, [esp + 0x3c]
mov ecx, esi
push eax
push 1
push 0xffffffffffffffff
call fcn.004aa4d0
jmp 0x4a3c82
mov ecx, esi
call fcn.004aa850
jmp 0x4a3c82
mov ecx, esi
call fcn.004aa8f0
jmp 0x4a3c82
mov eax, dword [esi + 0x74]
push ebp
push ebp
push ebp
lea ecx, [esp + 0xa0]
push ebp
lea edx, [esp + 0xa0]
push ecx
push edx
push ebp
push ebp
push eax
mov ecx, esi
call fcn.0047e860
cmp eax, 0xd
jne 0x4a3c82
mov ecx, dword [esp + 0x90]
cmp dword [ecx + 0xc8], ebp
jne 0x4a3c4e
xor edx, edx
jmp 0x4a3c54
mov edx, dword [ecx + 0xc0]
cmp dword [ecx + 0x64], ebp
jne 0x4a3c5d
xor eax, eax
jmp 0x4a3c60
mov eax, dword [ecx + 0x5c]
mov edi, dword [esp + 0x94]
mov edi, dword [eax + edi*4]
add edi, edx
push edi
call fcn.004cd260
test al, 1
je 0x4a3c82
push ebp
inc edi
push 1
push edi
mov ecx, esi
call fcn.004abc50
push 1
push ebp
push ebp
mov ecx, esi
call fcn.004a6440
mov edi, dword [esp + 0x88]
cmp dword [esp + 0x14], 1
jne 0x4a3daa
cmp edi, 0x101001b
je 0x4a3ce5
mov eax, dword [esp + 0x88]
cmp eax, 0x101001d
je 0x4a3ce5
cmp eax, 0x101001f
je 0x4a3ce5
cmp eax, 0x1010021
je 0x4a3ce5
mov edi, dword [esi + 0x74]
mov ecx, esi
call fcn.004abc30
dec eax
cmp edi, eax
jne 0x4a3ce5
cmp dword [esp + 0x88], 0x101001c
jne 0x4a3d4a
cmp dword [esp + 0x18], edi
je 0x4a3d4a
mov edi, dword [esi + 0x74]
mov eax, dword [esi + 0x90]
cmp edi, eax
jne 0x4a3d47
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x94]
cmp ecx, eax
jne 0x4a3d42
mov edx, dword [esi + 0xa0]
push ebp
push ebp
lea eax, [esp + 0x44]
push ebp
push eax
mov ecx, esi
mov dword [esi + 0x7c], edx
call fcn.0047ce90
push 1
lea ecx, [esp + 0x40]
push ebp
push ecx
mov ecx, esi
call fcn.004a69c0
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x74]
lea edx, [esp + 0x3c]
push 1
push edx
push ebp
push eax
push ecx
mov ecx, esi
call fcn.004a0ad0
jmp 0x4a3e24
or edi, 0xffffffff
jmp 0x4a3d4a
jle 0x4a3d4a
dec edi
lea ecx, [esi + 0xb8]
mov dword [ecx + 0x10], ebp
mov eax, dword [esi + 0xb4]
cmp eax, ebp
jne 0x4a3d61
xor edx, edx
jmp 0x4a3d67
mov edx, dword [esi + 0xac]
push eax
push edx
call fcn.00473d50
cmp edi, 0xffffffff
je 0x4a3d82
mov edx, dword [esi + 0x90]
push edi
push edx
mov ecx, esi
call fcn.004a6cc0
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0x90]
push ebp
push eax
push edi
push ecx
mov ecx, esi
call fcn.004a0c10
mov edx, dword [esi + 0x74]
mov dword [esi + 0x98], edi
mov dword [esi + 0x9c], edx
jmp 0x4a3dcb
cmp dword [esp + 0x10], ebp
je 0x4a3dcb
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x74]
mov eax, dword [esp + 0x2c]
push 1
push ebp
push 1
push ecx
push edx
mov ecx, esi
mov dword [esi + 0x7c], eax
call fcn.004a0ad0
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x74]
cmp eax, edi
jne 0x4a3de1
mov eax, dword [esi + 0x78]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
je 0x4a3e24
mov eax, dword [esi + 0x5c]
cmp dword [eax + 0x2d8], 1
je 0x4a3e24
cmp dword [eax + 0x2d4], ebp
jne 0x4a3e24
cmp dword [0x59a57c], 0xffffffff
jne 0x4a3e0d
lea ecx, [esp + 0x50]
push ecx
mov ecx, 0x59a578
call fcn.004e7e80
mov eax, dword [esp + 0x1c]
mov edx, dword [esi]
push eax
push edi
push 0xf
push 0x202006e
mov ecx, esi
call dword [edx + 0xe0]
mov esi, 0x54d7d0
lea ecx, [esp + 0x50]
mov byte [esp + 0x80], 0
mov dword [esp + 0x50], esi
call fcn.00473690
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x3c], esi
lea ecx, [esp + 0x3c]
call fcn.00473690
mov eax, 1
jmp 0x4a3e91
mov esi, 0x54d7d0
lea ecx, [esp + 0x50]
mov byte [esp + 0x80], 0
mov dword [esp + 0x50], esi
call fcn.00473690
lea ecx, [esp + 0x3c]
mov dword [esp + 0x80], 0xffffffff
mov dword [esp + 0x3c], esi
call fcn.00473690
xor eax, eax
mov ecx, dword [esp + 0x78]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x74
ret 0x10