Function at 0x1004215
Capabilities:
Link many functions at runtime

Disassembly:
sub esp, 0xd08
push ebx
push ebp
push esi
push edi
mov esi, 0x100b960
xor ebx, ebx
push esi
mov byte [esp + 0x11c], bl
call fcn.01002d48
lea eax, [esp + 0x118]
push eax
push esi
call fcn.01002f42
push 0x1001f84
push 2
call fcn.01003044
pop ecx
pop ecx
push 0x1001f74
mov dword [0x100b93c], ebx
mov dword [0x100b944], ebx
mov dword [0x100b988], ebx
mov dword [0x100b94c], ebx
mov dword [0x100b984], ebx
mov dword [0x100b948], ebx
mov dword [0x100b940], ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov dword [0x100b93c], eax
mov ebp, 0x1000
jne 0x10042d4
call esi
push ebx
push 0x100
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push ebx
push ebp
mov dword [esp + 0x2c], eax
call edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push 0x1001f4c
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push 0x1001f3c
push dword [0x100b93c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x100b944], eax
jne 0x1004324
call esi
push ebx
push 0x100
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push ebx
push ebp
mov dword [esp + 0x2c], eax
call edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push 0x1001ef8
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push 0x1001ee4
push dword [0x100b93c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x100b988], eax
jne 0x1004374
call esi
push ebx
push 0x100
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push ebx
push ebp
mov dword [esp + 0x2c], eax
call edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push 0x1001ea0
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push 0x1001e8c
push dword [0x100b93c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x100b94c], eax
jne 0x10043c4
call esi
push ebx
push 0x100
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push ebx
push ebp
mov dword [esp + 0x2c], eax
call edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push 0x1001e48
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push 0x1001e38
push dword [0x100b93c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x100b984], eax
jne 0x1004414
call esi
push ebx
push 0x100
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push ebx
push ebp
mov dword [esp + 0x2c], eax
call edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push 0x1001df8
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push 0x1001de0
push dword [0x100b93c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x100b948], eax
jne 0x1004464
call esi
push ebx
push 0x100
lea ecx, [esp + 0x20]
push ecx
push ebx
push eax
push ebx
push ebp
mov dword [esp + 0x2c], eax
call edi
lea eax, [esp + 0x18]
push eax
push dword [esp + 0x14]
push 0x1001d98
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push 0x1001d80
push dword [0x100b93c]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
cmp eax, ebx
mov dword [0x100b940], eax
jne 0x10044af
call esi
push ebx
push 0x100
mov esi, eax
lea eax, [esp + 0x20]
push eax
push ebx
push esi
push ebx
push ebp
call edi
lea eax, [esp + 0x18]
push eax
push esi
push 0x1001d98
push 1
call fcn.01003044
add esp, 0x10
push 0xfffffffffffffff6
call fcn.0100352e
push dword [0x100b970]
call dword [0x100b984]
push dword [0x100b97c]
call dword [0x100b948]
push dword [0x100b978]
call dword [0x100b940]
mov edi, dword [esp + 0xd24]
mov eax, edi
mov dword [esp + 0x10], ebx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10044e3
sub eax, esi
add eax, 2
push eax
call fcn.01004afe
mov dword [esp + 0x18], eax
mov eax, edi
pop ecx
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x10044ff
sub eax, esi
add eax, 2
push eax
call fcn.01004afe
mov ebp, eax
mov eax, edi
pop ecx
mov word [ebp], 0x20
mov esi, eax
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x100451e
mov edi, ebp
sub eax, esi
dec edi
mov cl, byte [edi + 1]
inc edi
cmp cl, bl
jne 0x100452a
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [ebp], bl
mov edi, dword [esp + 0x14]
mov esi, ebp
je 0x10045af
mov al, byte [esi]
xor ecx, ecx
cmp al, 0x22
sete cl
xor dword [esp + 0x10], ecx
jne 0x100458d
cmp al, 0x20
je 0x1004562
cmp al, 9
jne 0x100458d
lea ecx, [esi + 1]
mov dl, byte [ecx]
cmp dl, 0x2f
je 0x1004576
cmp dl, 0x2d
je 0x1004576
cmp dl, 0x40
jne 0x100458d
lea eax, [esp + 0x118]
push eax
push 0x100b960
push ecx
call fcn.01003971
mov esi, eax
jmp 0x1004591
mov byte [edi], al
inc edi
inc esi
cmp byte [esi], bl
jne 0x100454b
cmp dword [esp + 0x10], ebx
je 0x10045af
lea eax, [esp + 0x118]
push 0x1001380
push eax
call fcn.01004a34
pop ecx
pop ecx
push ebp
call fcn.010049fc
pop ecx
push dword [esp + 0x14]
mov byte [edi], bl
call fcn.010034ba
mov esi, eax
cmp byte [esi], bl
je 0x10045f5
lea eax, [esp + 0x118]
push eax
lea eax, [esp + 0x18]
push eax
push esi
call fcn.01002c10
cmp eax, 1
jne 0x10045f5
mov eax, dword [esp + 0x14]
mov ecx, dword [0x100b980]
mov dword [eax + 0x14], ecx
mov eax, dword [esp + 0x14]
mov dword [0x100b980], eax
push esi
call fcn.010049fc
push dword [esp + 0xd28]
push 0x1001d58
push 2
call fcn.01003044
add esp, 0x10
mov ebp, 0x100b960
push ebp
call fcn.01003074
cmp byte [esp + 0x118], bl
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
je 0x1004668
cmp dword [0x100b970], ebx
jne 0x100464a
push 0x10
push 0x1001d44
lea eax, [esp + 0x120]
push eax
push ebx
call edi
call fcn.01003565
lea eax, [esp + 0x118]
push eax
push 0x1001d1c
push 1
call fcn.01003044
add esp, 0xc
push 0xfffffffffffffff6
call fcn.0100352e
lea eax, [esp + 0x118]
push eax
push ebp
call fcn.0100313d
test eax, eax
mov esi, 0x1001d0c
jne 0x10046b8
cmp dword [0x100b970], ebx
jne 0x100469a
push 0x10
push esi
lea eax, [esp + 0x120]
push eax
push ebx
call edi
call fcn.01003565
lea eax, [esp + 0x118]
push eax
push 0x1001cec
push 1
call fcn.01003044
add esp, 0xc
push 0xfffffffffffffff6
call fcn.0100352e
cmp dword [0x100b980], ebx
jne 0x10046ee
cmp dword [0x100b970], ebx
mov ebp, 0x1001cd4
jne 0x10046d9
push 0x10
push esi
push ebp
push ebx
call edi
call fcn.01003565
push ebp
push 1
call fcn.01003044
pop ecx
pop ecx
push ebx
call fcn.0100352e
mov ebp, 0x100b960
cmp dword [0x100b960], ebx
je 0x100474c
call fcn.01003828
lea eax, [esp + 0x118]
push eax
push ebp
call fcn.01003e92
test eax, eax
jne 0x1004746
cmp dword [0x100b970], ebx
jne 0x1004728
push 0x10
push esi
lea eax, [esp + 0x120]
push eax
push ebx
call edi
call fcn.01003565
lea eax, [esp + 0x118]
push eax
push 0x1001cb4
push 1
call fcn.01003044
add esp, 0xc
push 0xfffffffffffffff6
call fcn.0100352e
push ebx
call fcn.0100352e
push 0x1001ca0
push 1
call fcn.01003044
mov esi, dword [0x100b980]
pop ecx
pop ecx
jmp 0x10047e6
lea eax, [esp + 0x118]
push eax
push ebx
push esi
mov byte [esp + 0x124], bl
call dword [0x100b944]
test eax, eax
jge 0x10047e3
lea eax, [esp + 0x118]
push eax
push dword [esi + 4]
push 0x1001c80
push 1
call fcn.01003044
add esp, 0x10
cmp dword [0x100b970], ebx
jne 0x10047d4
lea eax, [esp + 0x118]
push eax
push dword [esi + 4]
lea eax, [esp + 0x520]
push 0x1001c78
push eax
call fcn.01004a34
add esp, 0x10
push 0x10
push 0x1001c60
lea eax, [esp + 0x520]
push eax
push ebx
call edi
cmp dword [0x100b974], ebx
jne 0x10047e3
push 0xfffffffffffffff6
call fcn.0100352e
mov esi, dword [esi + 0x14]
cmp esi, ebx
jne 0x1004765
push ebx
call fcn.0100352e
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xd08
ret 0x10