Function at 0x1009525
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x464
mov eax, dword [0x100e094]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x438], eax
mov eax, dword [ebp + 0xc]
push ebx
mov bx, word [eax]
mov dword [ebp - 0x40c], ecx
xor ecx, ecx
cmp bx, cx
mov dword [ebp - 0x420], eax
mov dword [ebp - 0x43c], ecx
mov dword [ebp - 0x414], ecx
mov dword [ebp - 0x41c], ecx
je 0x1009c50
push esi
push edi
jmp 0x100929d
mov ecx, dword [ebp - 0x44c]
push 2
pop edi
add dword [ebp - 0x420], edi
cmp dword [ebp - 0x41c], 0
jl 0x1009c4e
push reloc.USER32.dll_GetWindowTextLengthW
pop esi
cmp bx, si
jb 0x10092d0
cmp bx, 0x78
ja 0x10092d0
movzx eax, bx
movsx eax, byte [eax + 0x1001bb0]
and eax, 0xf
jmp 0x10092d2
xor eax, eax
movsx eax, byte [ecx + eax*8 + 0x1001bd0]
push 7
sar eax, 4
pop ecx
cmp eax, ecx
mov dword [ebp - 0x44c], eax
ja case.default.0x10092ee
jmp dword [eax*4 + 0x1009c61]
xor eax, eax
or dword [ebp - 0x410], 0xffffffff
mov dword [ebp - 0x450], eax
mov dword [ebp - 0x448], eax
mov dword [ebp - 0x428], eax
mov dword [ebp - 0x424], eax
mov dword [ebp - 0x408], eax
mov dword [ebp - 0x42c], eax
jmp case.default.0x10092ee
movzx eax, bx
sub eax, esi
je 0x1009375
sub eax, 3
je 0x1009369
sub eax, 8
je 0x100935d
sub eax, edi
je 0x1009351
sub eax, 3
jne case.default.0x10092ee
or dword [ebp - 0x408], 8
jmp case.default.0x10092ee
or dword [ebp - 0x408], 4
jmp case.default.0x10092ee
or dword [ebp - 0x408], 1
jmp case.default.0x10092ee
or byte [ebp - 0x408], 0x80
jmp case.default.0x10092ee
or dword [ebp - 0x408], edi
jmp case.default.0x10092ee
cmp bx, 0x2a
jne 0x10093b6
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
test eax, eax
mov dword [ebp - 0x428], eax
jge case.default.0x10092ee
or dword [ebp - 0x408], 4
neg dword [ebp - 0x428]
jmp case.default.0x10092ee
mov eax, dword [ebp - 0x428]
movzx ecx, bx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp - 0x428], eax
jmp case.default.0x10092ee
and dword [ebp - 0x410], 0
jmp case.default.0x10092ee
cmp bx, 0x2a
jne 0x100940d
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
test eax, eax
mov dword [ebp - 0x410], eax
jge case.default.0x10092ee
or dword [ebp - 0x410], 0xffffffff
jmp case.default.0x10092ee
mov eax, dword [ebp - 0x410]
movzx ecx, bx
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2 - 0x30]
mov dword [ebp - 0x410], eax
jmp case.default.0x10092ee
movzx eax, bx
cmp eax, 0x49
je 0x1009466
cmp eax, 0x68
je 0x100945b
cmp eax, 0x6c
je 0x100944f
cmp eax, 0x77
jne case.default.0x10092ee
or byte [ebp - 0x407], 8
jmp case.default.0x10092ee
or dword [ebp - 0x408], 0x10
jmp case.default.0x10092ee
or dword [ebp - 0x408], esi
jmp case.default.0x10092ee
mov eax, dword [ebp - 0x420]
mov ax, word [eax]
cmp ax, 0x36
jne 0x1009495
mov ecx, dword [ebp - 0x420]
cmp word [ecx + 2], 0x34
jne 0x1009495
add dword [ebp - 0x420], 4
or byte [ebp - 0x407], 0x80
jmp case.default.0x10092ee
cmp ax, 0x33
jne 0x10094bb
mov ecx, dword [ebp - 0x420]
cmp word [ecx + 2], 0x32
jne 0x10094bb
add dword [ebp - 0x420], 4
and byte [ebp - 0x407], 0x7f
jmp case.default.0x10092ee
cmp ax, 0x64
je case.default.0x10092ee
cmp ax, 0x69
je case.default.0x10092ee
cmp ax, 0x6f
je case.default.0x10092ee
cmp ax, 0x75
je case.default.0x10092ee
cmp ax, 0x78
je case.default.0x10092ee
cmp ax, 0x58
je case.default.0x10092ee
and dword [ebp - 0x44c], 0
mov eax, dword [ebp - 0x438]
push ebx
lea esi, [ebp - 0x41c]
mov dword [ebp - 0x42c], 1
call fcn.010091a3
jmp 0x1009c3b
movzx eax, bx
cmp eax, 0x67
jg 0x1009875
cmp eax, 0x65
jge 0x1009608
cmp eax, 0x58
jg 0x10096aa
je 0x10098fc
sub eax, 0x43
je 0x1009637
sub eax, edi
je 0x10095fc
sub eax, edi
je 0x10095fc
sub eax, 0xc
jne 0x1009ab9
test word [ebp - 0x408], 0x830
jne 0x1009576
or dword [ebp - 0x408], esi
mov edx, dword [ebp - 0x410]
cmp edx, 0xffffffff
jne 0x1009586
mov edx, 0x7fffffff
add dword [ebp - 0x40c], 4
test byte [ebp - 0x408], 0x20
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
mov dword [ebp - 0x418], eax
je 0x10098b7
test eax, eax
jne 0x10095b8
mov eax, dword [0x100e558]
mov dword [ebp - 0x418], eax
and dword [ebp - 0x414], 0
test edx, edx
mov eax, dword [ebp - 0x418]
jle 0x1009ab9
mov cl, byte [eax]
test cl, cl
je 0x1009ab9
mov esi, dword [0x100e584]
movzx ecx, cl
test byte [esi + ecx*2 + 1], 0x80
je 0x10095e8
inc eax
inc eax
inc dword [ebp - 0x414]
cmp dword [ebp - 0x414], edx
jl 0x10095cd
jmp 0x1009ab9
mov dword [ebp - 0x450], 1
add ebx, esi
or dword [ebp - 0x408], 0x40
cmp dword [ebp - 0x410], 0
lea edi, [ebp - 0x404]
mov dword [ebp - 0x418], edi
jge 0x100977d
mov dword [ebp - 0x410], 6
jmp 0x10097dd
test word [ebp - 0x408], 0x830
jne 0x1009648
or dword [ebp - 0x408], esi
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
movzx eax, word [eax - 4]
xor esi, esi
inc esi
test byte [ebp - 0x408], 0x20
mov dword [ebp - 0x42c], esi
mov dword [ebp - 0x454], eax
je 0x10096f8
push dword [0x100e578]
mov byte [ebp - 0x434], al
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x404]
push eax
mov byte [ebp - 0x433], 0
call fcn.0100b634
add esp, 0xc
test eax, eax
jge 0x10096ff
mov dword [ebp - 0x448], esi
jmp 0x10096ff
sub eax, 0x5a
je 0x1009716
sub eax, 9
je 0x1009648
dec eax
jne 0x1009ab9
or dword [ebp - 0x408], 0x40
mov dword [ebp - 0x414], 0xa
mov ebx, dword [ebp - 0x408]
mov esi, 0x8000
test esi, ebx
je 0x100999c
mov ecx, dword [ebp - 0x40c]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
add ecx, 8
mov dword [ebp - 0x40c], ecx
jmp 0x10099ca
mov word [ebp - 0x404], ax
lea eax, [ebp - 0x404]
mov dword [ebp - 0x418], eax
mov dword [ebp - 0x414], esi
jmp 0x1009ab9
add dword [ebp - 0x40c], 4
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
test eax, eax
je 0x1009763
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x1009763
test byte [ebp - 0x407], 8
movsx eax, word [eax]
mov dword [ebp - 0x418], ecx
je 0x1009757
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x42c], 1
jmp 0x1009ab3
and dword [ebp - 0x42c], 0
jmp 0x1009ab3
mov eax, dword [0x100e558]
mov dword [ebp - 0x418], eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1009771
jmp 0x100986e
jne 0x1009791
cmp bx, 0x67
jne 0x10097dd
mov dword [ebp - 0x410], 1
jmp 0x10097dd
mov eax, 0x200
cmp dword [ebp - 0x410], eax
jle 0x10097a4
mov dword [ebp - 0x410], eax
mov esi, 0xa3
cmp dword [ebp - 0x410], esi
jle 0x10097dd
mov eax, dword [ebp - 0x410]
add eax, 0x15d
push eax
call fcn.0100a59c
test eax, eax
pop ecx
mov dword [ebp - 0x43c], eax
je 0x10097d7
mov dword [ebp - 0x418], eax
mov edi, eax
jmp 0x10097dd
mov dword [ebp - 0x410], esi
mov eax, dword [ebp - 0x40c]
mov ecx, dword [eax]
push dword [ebp - 0x450]
add eax, 8
push dword [ebp - 0x410]
mov dword [ebp - 0x40c], eax
mov eax, dword [eax - 4]
mov dword [ebp - 0x460], eax
movsx eax, bl
push eax
lea eax, [ebp - 0x464]
push edi
push eax
mov dword [ebp - 0x464], ecx
call dword [0x100e560]
mov esi, dword [ebp - 0x408]
add esp, 0x14
and esi, 0x80
je 0x100983d
cmp dword [ebp - 0x410], 0
jne 0x100983d
push edi
call dword [0x100e56c]
pop ecx
cmp bx, 0x67
jne 0x100984f
test esi, esi
jne 0x100984f
push edi
call dword [0x100e564]
pop ecx
cmp byte [edi], 0x2d
jne 0x1009862
or byte [ebp - 0x407], 1
inc edi
mov dword [ebp - 0x418], edi
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x1009867
sub eax, edx
jmp 0x1009ab3
sub eax, 0x69
je 0x10096bb
sub eax, 5
je 0x1009960
dec eax
je 0x100993d
dec eax
je 0x10098f2
sub eax, 3
je 0x1009576
sub eax, edi
je 0x10096c2
sub eax, 3
jne 0x1009ab9
mov dword [ebp - 0x440], 0x27
jmp 0x1009902
test eax, eax
jne 0x10098c6
mov eax, dword [0x100e55c]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x418]
mov dword [ebp - 0x42c], 1
jmp 0x10098e1
dec edx
cmp word [eax], 0
je 0x10098e5
add eax, edi
test edx, edx
jne 0x10098d8
sub eax, dword [ebp - 0x418]
sar eax, 1
jmp 0x1009ab3
mov dword [ebp - 0x410], 8
mov dword [ebp - 0x440], ecx
test byte [ebp - 0x408], 0x80
mov dword [ebp - 0x414], 0x10
je 0x10096cc
mov eax, dword [ebp - 0x440]
add eax, 0x51
mov word [ebp - 0x430], 0x30
mov word [ebp - 0x42e], ax
mov dword [ebp - 0x424], edi
jmp 0x10096cc
test byte [ebp - 0x408], 0x80
mov dword [ebp - 0x414], 8
je 0x10096cc
or byte [ebp - 0x407], 2
jmp 0x10096cc
add dword [ebp - 0x40c], 4
test byte [ebp - 0x408], 0x20
mov eax, dword [ebp - 0x40c]
mov eax, dword [eax - 4]
je 0x1009985
mov cx, word [ebp - 0x41c]
mov word [eax], cx
jmp 0x100998d
mov ecx, dword [ebp - 0x41c]
mov dword [eax], ecx
mov dword [ebp - 0x448], 1
jmp 0x1009c20
add dword [ebp - 0x40c], 4
test bl, 0x20
mov eax, dword [ebp - 0x40c]
je 0x10099c0
test bl, 0x40
je 0x10099ba
movsx eax, word [eax - 4]
cdq
jmp 0x10099ca
movzx eax, word [eax - 4]
jmp 0x10099b7
test bl, 0x40
mov eax, dword [eax - 4]
jne 0x10099b7
xor edx, edx
test bl, 0x40
je 0x10099e7
test edx, edx
jg 0x10099e7
jl 0x10099d9
test eax, eax
jae 0x10099e7
neg eax
adc edx, 0
neg edx
or byte [ebp - 0x407], 1
test dword [ebp - 0x408], esi
mov ebx, eax
mov edi, edx
jne 0x10099f5
xor edi, edi
cmp dword [ebp - 0x410], 0
jge 0x1009a0a
mov dword [ebp - 0x410], 1
jmp 0x1009a24
and dword [ebp - 0x408], 0xfffffff7
mov eax, 0x200
cmp dword [ebp - 0x410], eax
jle 0x1009a24
mov dword [ebp - 0x410], eax
mov eax, ebx
or eax, edi
jne 0x1009a31
and dword [ebp - 0x424], 0
lea esi, [ebp - 0x205]
mov eax, dword [ebp - 0x410]
dec dword [ebp - 0x410]
test eax, eax
jg 0x1009a4d
mov eax, ebx
or eax, edi
je 0x1009a7a
mov eax, dword [ebp - 0x414]
cdq
push edx
push eax
push edi
push ebx
call fcn.0100b710
add ecx, 0x30
cmp ecx, 0x39
mov dword [ebp - 0x458], ebx
mov ebx, eax
mov edi, edx
jle 0x1009a75
add ecx, dword [ebp - 0x440]
mov byte [esi], cl
dec esi
jmp 0x1009a37
lea eax, [ebp - 0x205]
sub eax, esi
inc esi
test byte [ebp - 0x407], 2
mov dword [ebp - 0x414], eax
mov dword [ebp - 0x418], esi
je 0x1009ab9
mov ecx, esi
cmp byte [ecx], 0x30
jne 0x1009aa3
test eax, eax
jne 0x1009ab9
dec dword [ebp - 0x418]
mov ecx, dword [ebp - 0x418]
mov byte [ecx], 0x30
inc eax
mov dword [ebp - 0x414], eax
cmp dword [ebp - 0x448], 0
jne 0x1009c20
mov eax, dword [ebp - 0x408]
test al, 0x40
je 0x1009b06
test ah, 1
je 0x1009ae0
mov word [ebp - 0x430], 0x2d
jmp 0x1009afc
test al, 1
je 0x1009aef
mov word [ebp - 0x430], 0x2b
jmp 0x1009afc
test al, 2
je 0x1009b06
mov word [ebp - 0x430], reloc.USER32.dll_GetWindowTextLengthW
mov dword [ebp - 0x424], 1
mov ebx, dword [ebp - 0x428]
sub ebx, dword [ebp - 0x424]
sub ebx, dword [ebp - 0x414]
test byte [ebp - 0x408], 0xc
jne 0x1009b38
push dword [ebp - 0x438]
lea eax, [ebp - 0x41c]
push ebx
push reloc.USER32.dll_GetWindowTextLengthW
call fcn.010091d3
add esp, 0xc
push dword [ebp - 0x424]
mov edi, dword [ebp - 0x438]
lea eax, [ebp - 0x41c]
lea ecx, [ebp - 0x430]
call fcn.010091ff
test byte [ebp - 0x408], 8
pop ecx
je 0x1009b7a
test byte [ebp - 0x408], 4
jne 0x1009b7a
push edi
push ebx
push 0x30
lea eax, [ebp - 0x41c]
call fcn.010091d3
add esp, 0xc
cmp dword [ebp - 0x42c], 0
jne 0x1009be8
mov eax, dword [ebp - 0x414]
test eax, eax
jle 0x1009be8
mov edi, dword [ebp - 0x418]
mov dword [ebp - 0x444], eax
push dword [0x100e578]
dec dword [ebp - 0x444]
lea eax, [ebp - 0x454]
push edi
push eax
call fcn.0100b634
add esp, 0xc
test eax, eax
mov dword [ebp - 0x458], eax
jle 0x1009c00
push dword [ebp - 0x454]
mov eax, dword [ebp - 0x438]
lea esi, [ebp - 0x41c]
call fcn.010091a3
add edi, dword [ebp - 0x458]
cmp dword [ebp - 0x444], 0
pop ecx
jg 0x1009b99
jmp 0x1009c00
push dword [ebp - 0x414]
mov ecx, dword [ebp - 0x418]
lea eax, [ebp - 0x41c]
call fcn.010091ff
pop ecx
test byte [ebp - 0x408], 4
je 0x1009c20
push dword [ebp - 0x438]
lea eax, [ebp - 0x41c]
push ebx
push reloc.USER32.dll_GetWindowTextLengthW
call fcn.010091d3
add esp, 0xc
cmp dword [ebp - 0x43c], 0
je case.default.0x10092ee
push dword [ebp - 0x43c]
call fcn.0100a4d7
and dword [ebp - 0x43c], 0
pop ecx
mov eax, dword [ebp - 0x420]
mov bx, word [eax]
test bx, bx
jne 0x1009297
pop edi
pop esi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x41c]
pop ebx
call fcn.010079ac
leave
ret