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

Disassembly:
sub esp, 0x5c
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea eax, [esp + 0x5c]
push eax
mov dword [esp + 0x24], edi
mov ecx, dword [edi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ebx, dword [esp + 0x68]
mov edx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x5c]
sub ebx, edx
sub esi, ecx
movsx edx, word [edi + 0x1ec]
shl edx, 1
mov eax, esi
mov dword [esp + 0x10], ebx
sub eax, edx
dec eax
cmp eax, 1
jge 0x41b7ec
mov eax, 1
push 8
lea ecx, [edi + 0x128]
push 1
push eax
mov dword [esp + 0x54], ecx
call fcn.0041a8a0
movsx ecx, word [edi + 0x1ec]
shl ecx, 1
mov eax, ebx
sub eax, ecx
cmp eax, 1
jge 0x41b817
mov eax, 1
push 8
lea ecx, [edi + 0x15c]
push eax
push 1
mov dword [esp + 0x58], ecx
call fcn.0041a8a0
push 8
lea ecx, [edi + 0x58]
push ebx
push esi
mov dword [esp + 0x50], ecx
call fcn.0041a8a0
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
push 0x14
call edi
push 0xf
mov dword [esp + 0x44], eax
call edi
push 0x10
mov ebx, eax
call edi
mov ecx, ebx
mov edi, eax
and ecx, 0xff
and edi, 0xff
mov dword [esp + 0x3c], ecx
xor ecx, ecx
mov cl, ah
xor edx, edx
mov ebp, ecx
xor ecx, ecx
mov cl, bh
and ebp, 0xff
shr eax, 0x10
and ecx, 0xff
and eax, 0xff
mov dword [esp + 0x38], ecx
mov ecx, eax
neg ecx
mov dword [esp + 0x58], ecx
mov ecx, ebp
neg ecx
mov dword [esp + 0x54], ecx
mov ecx, edi
shr ebx, 0x10
and ebx, 0xff
mov dword [esp + 0x14], edx
neg ecx
shl eax, 7
shl ebp, 7
shl edi, 7
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], edx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], ebp
mov dword [esp + 0x24], edi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add eax, edx
mov ecx, dword [esp + 0x28]
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [esp + 0x18]
mov edi, eax
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x30]
cdq
and edx, 0x7f
add eax, edx
mov ebp, eax
mov eax, dword [esp + 0x2c]
add eax, ecx
mov ecx, dword [esp + 0x44]
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [esp + 0x14]
mov ebx, eax
sar ebx, 7
sar ebp, 7
sar edi, 7
push ebx
push ebp
push edi
push edx
call fcn.0041aa00
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x48]
push ebx
push ebp
push edi
push eax
call fcn.0041aa00
mov ecx, dword [esp + 0x4c]
push ebx
push ebp
push edi
mov edi, dword [esp + 0x20]
push edi
call fcn.0041aa00
mov ecx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
add ebp, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], ebp
mov ebp, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x54]
add ebx, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x2c]
add ebp, ecx
mov ecx, dword [esp + 0x30]
inc edi
add ebx, edx
add ecx, eax
cmp edi, 0x81
mov dword [esp + 0x14], edi
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ecx
jl 0x41b8d5
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x34]
xor edx, edx
mov ecx, eax
mov dl, ah
and ecx, 0xff
shr eax, 0x10
and eax, 0xff
and edx, 0xff
mov dword [esp + 0x44], eax
mov dword [esp + 0x18], eax
mov eax, edi
mov dword [esp + 0x54], edx
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x38]
neg eax
mov dword [esp + 0x48], eax
mov eax, edx
mov dword [esp + 0x58], ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x14], 1
neg eax
mov dword [esp + 0x4c], eax
mov eax, ecx
neg eax
mov dword [esp + 0x50], eax
mov eax, edi
shl eax, 7
sub eax, edi
mov dword [esp + 0x1c], eax
mov eax, edx
shl eax, 7
sub eax, edx
mov dword [esp + 0x24], eax
mov eax, ecx
shl eax, 7
sub eax, ecx
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
lea eax, [ecx + edx]
mov ecx, dword [esp + 0x2c]
cdq
and edx, 0x7f
add eax, edx
mov edi, eax
mov eax, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x20]
cdq
and edx, 0x7f
add ecx, 0x58
add eax, edx
mov edx, dword [esp + 0x1c]
mov ebp, eax
mov eax, dword [esp + 0x18]
add eax, edx
cdq
and edx, 0x7f
add eax, edx
mov ebx, eax
mov al, byte [esp + 0x14]
sar ebx, 7
sar ebp, 7
sar edi, 7
push ebx
add al, 0x7f
push ebp
push edi
push eax
mov byte [esp + 0x4c], al
call fcn.0041aa00
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x3c]
push ebx
push ebp
push edi
push edx
lea ecx, [eax + 0x128]
call fcn.0041aa00
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x20]
push ebx
push ebp
push edi
push ecx
lea ecx, [edx + 0x15c]
call fcn.0041aa00
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x14]
add ebx, ecx
mov ecx, dword [esp + 0x50]
add edi, edx
mov edx, dword [esp + 0x28]
add edx, ecx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x18]
add ebp, edx
mov edx, dword [esp + 0x44]
inc eax
add ebx, ecx
add edi, edx
cmp eax, 0x81
mov dword [esp + 0x14], eax
mov dword [esp + 0x24], ebp
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edi
jl 0x41ba30
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x20]
and eax, 0xff
push eax
push ecx
lea ecx, [edi + 0x58]
call fcn.0041aaa0
lea ecx, [edi + 0x128]
call fcn.0041a880
mov edx, dword [edi + 0x130]
xor ecx, ecx
test edx, edx
mov ebp, eax
jle 0x41bb74
mov eax, ecx
and eax, 0xff
and eax, 0x80000001
jns 0x41bb6a
dec eax
or eax, 0xfffffffe
inc eax
neg al
mov byte [ecx + ebp], al
inc ecx
cmp ecx, edx
jl 0x41bb57
lea ecx, [edi + 0x15c]
call fcn.0041a880
mov ebp, dword [edi + 0x168]
xor ecx, ecx
test ebp, ebp
jle 0x41bbac
mov edx, ecx
and edx, 0xff
and edx, 0x80000001
jns 0x41bba0
dec edx
or edx, 0xfffffffe
inc edx
neg dl
mov byte [eax], dl
add eax, 4
inc ecx
cmp ecx, ebp
jl 0x41bb8b
mov eax, dword [edi + 0x84]
lea ebp, [edi + 0x58]
mov ecx, ebp
mov dword [esp + 0x7c], eax
call fcn.0041a880
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x14], eax
and ecx, 0xff
mov edi, eax
mov dword [esp + 0x18], ecx
mov ebx, 1
lea eax, [ecx + ecx]
cmp eax, 1
jl 0x41bbe3
mov ebx, eax
mov eax, 0x7fff
cdq
idiv ebx
mov edx, dword [esp + 0x70]
mov ebx, eax
mov eax, 0xff
sub eax, ecx
dec edx
cmp edx, 7
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], eax
ja case.default.0x41bc0a
jmp dword [edx*4 + 0x41c4bc]
push 0
mov ecx, ebp
call fcn.0041ac10
mov eax, 0x7fff
mov dword [esp + 0x38], 0xc8
cdq
idiv esi
mov dword [esp + 0x58], eax
mov eax, 0x7fff
cdq
idiv dword [esp + 0x10]
mov dword [esp + 0x54], eax
call fcn.00425aa4
cdq
idiv dword [esp + 0x58]
mov dword [esp + 0x3c], eax
call fcn.00425aa4
cdq
idiv dword [esp + 0x54]
mov ebx, dword [esp + 0x10]
cmp esi, ebx
mov edi, eax
jge 0x41bc60
mov ebx, esi
call fcn.00425aa4
mov ecx, eax
mov eax, 0x7fff
cdq
idiv ebx
mov ebx, eax
mov eax, ecx
cdq
idiv ebx
cdq
sub eax, edx
mov ebp, eax
sar ebp, 1
call fcn.00425aa4
mov ecx, eax
mov eax, 0xa00a00a1
imul ecx
add edx, ecx
xor ebx, ebx
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
test ebp, ebp
mov dword [esp + 0x70], edx
jle 0x41bd20
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], edi
sub eax, edi
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x80]
lea eax, [ecx + edi]
test eax, eax
jle 0x41bcdf
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x10]
cmp edx, ecx
jge 0x41bcdf
mov ecx, dword [esp + 0x70]
push ecx
push edx
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + 0x58]
call fcn.0041aa50
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x74]
add ecx, edx
cmp ecx, esi
jge 0x41bd11
test edi, edi
jle 0x41bd11
mov eax, dword [esp + 0x70]
mov edx, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x40]
mov ecx, ebx
push edi
sub ecx, eax
add ecx, esi
push ecx
lea ecx, [edx + 0x58]
call fcn.0041aa50
mov edx, dword [esp + 0x74]
inc ebx
inc edx
dec edi
cmp ebx, ebp
mov dword [esp + 0x74], edx
jl 0x41bcb2
mov eax, dword [esp + 0x38]
dec eax
mov dword [esp + 0x38], eax
jne 0x41bc3c
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
sub eax, edx
mov ecx, dword [esp + 0x10]
sub eax, 0x28
mov ebp, dword [esp + 0x14]
cdq
sub eax, edx
sar eax, 1
test ecx, ecx
mov dword [esp + 0x80], eax
jle 0x41c46c
mov dword [esp + 0x74], 0
mov dword [esp + 0x3c], ecx
xor edi, edi
test esi, esi
jle 0x41bdc0
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x80]
cdq
idiv dword [esp + 0x10]
mov dword [esp + 0x70], eax
mov eax, ebx
neg eax
imul ebx, esi
mov dword [esp + 0x58], eax
mov eax, ebx
mov cl, byte [esp + 0x70]
cdq
idiv esi
mov dl, byte [edi + ebp]
add al, cl
add dl, al
mov byte [edi + ebp], dl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [edi + ebp]
add cl, al
mov byte [edi + ebp], cl
mov ecx, dword [esp + 0x58]
inc edi
add ebx, ecx
cmp edi, esi
jl 0x41bd89
mov eax, dword [esp + 0x80]
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x3c]
add ebp, edi
add edx, eax
dec ecx
mov dword [esp + 0x74], edx
mov dword [esp + 0x3c], ecx
jne 0x41bd64
jmp 0x41c46c
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x41bea0
mov ecx, dword [esp + 0x18]
mov eax, 0x40
sub eax, ecx
mov dword [esp + 0x80], 0
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
xor ebp, ebp
cdq
idiv dword [esp + 0x10]
mov ecx, eax
sub ecx, 0x7f
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
imul eax, dword [esp + 0x58]
shl eax, 1
cdq
and edx, 0x7f
add eax, edx
mov ebx, eax
sar ebx, 7
add ebx, 0x80
test esi, esi
jle 0x41be77
mov byte [edi + ebp], bl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [esp + 0x74]
mov dl, byte [edi + ebp]
sub al, cl
add dl, al
mov byte [edi + ebp], dl
inc ebp
cmp ebp, esi
jl 0x41be57
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x70]
add edi, edx
add ecx, 0xff
dec eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x70], eax
jne 0x41be0e
mov eax, 0x2aaaaaab
mov edi, 0x10
imul esi
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x10
jg 0x41beba
mov edi, edx
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov eax, ecx
mov dword [esp + 0x70], edi
imul eax, ecx
cdq
and edx, 3
mov dword [esp + 0x14], 0
add eax, edx
sar eax, 2
test ecx, ecx
mov dword [esp + 0x80], eax
jle 0x41c46c
mov eax, ecx
mov ecx, edi
cdq
sub eax, edx
mov dword [esp + 0x30], 0
sar eax, 1
imul ecx, eax
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x54]
sub ecx, edi
sub ebx, edx
xor edi, edi
test esi, esi
jle 0x41bfb3
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov dword [esp + 0x3c], eax
mov eax, ebx
imul eax, ecx
cdq
idiv dword [esp + 0x80]
mov ecx, dword [esp + 0x70]
mov ebx, eax
mov eax, dword [esp + 0x3c]
sub ebx, ecx
add ebx, eax
mov edx, dword [esp + 0x3c]
mov ecx, edi
sub ecx, edx
cmp ecx, ebx
jle 0x41bf77
mov edx, edi
mov eax, esi
and edx, 0xff
and eax, 0xff
sub eax, edx
shl eax, 7
cdq
idiv dword [esp + 0x70]
add al, byte [esp + 0x18]
mov byte [edi + ebp], al
lea eax, [ebx + ecx]
test eax, eax
jge 0x41bf96
mov eax, edi
mov cl, byte [esp + 0x2c]
and eax, 0xff
shl eax, 7
cdq
idiv dword [esp + 0x70]
sub cl, al
mov byte [edi + ebp], cl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [esp + 0x74]
mov dl, byte [edi + ebp]
sub al, cl
add dl, al
mov byte [edi + ebp], dl
inc edi
cmp edi, esi
jl 0x41bf4b
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
add ebp, ebx
mov ebx, dword [esp + 0x30]
inc ecx
add ebx, edx
cmp ecx, eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x30], ebx
jl 0x41bf0f
jmp 0x41c46c
mov ebx, dword [esp + 0x10]
test ebx, ebx
jle 0x41c46c
mov dword [esp + 0x80], 0
mov dword [esp + 0x3c], ebx
mov eax, dword [esp + 0x80]
xor ebp, ebp
cdq
idiv ebx
mov ecx, eax
sub ecx, 0x7f
test esi, esi
jle 0x41c0c4
mov eax, ecx
mov ebx, esi
imul eax, ecx
imul eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [esp + 0x18]
sar eax, 7
mov dword [esp + 0x58], eax
mov eax, 0x80
sub eax, edx
shl ebx, 8
mov dword [esp + 0x70], eax
sub ebx, esi
mov eax, ebx
cdq
idiv esi
mov ecx, eax
sub ecx, 0x7f
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
and edx, 0x7f
mov ecx, dword [esp + 0x18]
add eax, edx
sar eax, 7
cdq
and edx, 0x7f
add eax, edx
mov edx, dword [esp + 0x58]
sar eax, 7
add eax, edx
imul eax, dword [esp + 0x70]
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
add eax, 0x80
cmp eax, ecx
jge 0x41c090
mov eax, ecx
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
jle 0x41c09a
mov eax, ecx
mov byte [edi + ebp], al
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov dl, byte [esp + 0x74]
mov cl, byte [edi + ebp]
sub ebx, 0xff
sub al, dl
add cl, al
mov byte [edi + ebp], cl
inc ebp
cmp ebp, esi
jl 0x41c049
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x3c]
add edi, edx
add ecx, 0xff
dec eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x3c], eax
jne 0x41bffc
jmp 0x41c46c
test esi, esi
mov dword [esp + 0x80], 0
jle 0x41c46c
mov edi, esi
mov ebp, 0x80
shl edi, 8
sub ebp, ecx
sub edi, esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x3c], edi
mov eax, edi
cdq
idiv esi
mov ecx, eax
sub ecx, 0x7f
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
imul eax, ebp
cdq
and edx, 0x7f
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x10]
sar ebx, 7
add ebx, 0x80
test eax, eax
jle 0x41c196
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
lea edi, [edx + eax]
mov byte [edi], bl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [esp + 0x74]
mov dl, byte [edi]
sub al, cl
mov ecx, dword [esp + 0x7c]
add dl, al
mov byte [edi], dl
add edi, ecx
dec ebp
jne 0x41c16d
mov edi, dword [esp + 0x3c]
mov ebp, dword [esp + 0x70]
mov eax, dword [esp + 0x80]
sub edi, 0xff
inc eax
mov dword [esp + 0x3c], edi
cmp eax, esi
mov dword [esp + 0x80], eax
jl 0x41c11b
jmp 0x41c46c
mov edx, dword [esp + 0x10]
test edx, edx
jle 0x41c46c
mov eax, 0x80
mov dword [esp + 0x80], 0
sub eax, ecx
mov dword [esp + 0x3c], edx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x80]
xor ebp, ebp
cdq
idiv dword [esp + 0x10]
mov ecx, eax
sub ecx, 0x7f
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
cdq
and edx, 0x7f
add eax, edx
sar eax, 7
imul eax, dword [esp + 0x70]
cdq
and edx, 0x7f
add eax, edx
mov ebx, eax
sar ebx, 7
add ebx, 0x80
test esi, esi
jle 0x41c249
mov byte [edi + ebp], bl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [esp + 0x74]
mov dl, byte [edi + ebp]
sub al, cl
add dl, al
mov byte [edi + ebp], dl
inc ebp
cmp ebp, esi
jl 0x41c229
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x3c]
add edi, edx
add ecx, 0xff
dec eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x3c], eax
jne 0x41c1e2
jmp 0x41c46c
sub eax, ecx
mov ecx, dword [esp + 0x10]
cdq
sub eax, edx
sar eax, 1
test ecx, ecx
mov dword [esp + 0x80], eax
jle 0x41c46c
mov dword [esp + 0x30], 0
mov dword [esp + 0x3c], ecx
xor ebp, ebp
test esi, esi
jle 0x41c2fe
mov eax, dword [esp + 0x30]
mov ebx, dword [esp + 0x80]
cdq
idiv dword [esp + 0x10]
mov dword [esp + 0x70], eax
mov eax, ebx
neg eax
imul ebx, esi
mov dword [esp + 0x58], eax
mov eax, ebx
mov cl, byte [esp + 0x18]
cdq
idiv esi
add al, byte [esp + 0x70]
add al, cl
mov byte [edi + ebp], al
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov dl, byte [esp + 0x74]
mov cl, byte [edi + ebp]
sub al, dl
add cl, al
mov byte [edi + ebp], cl
mov ecx, dword [esp + 0x58]
inc ebp
add ebx, ecx
cmp ebp, esi
jl 0x41c2c2
mov eax, dword [esp + 0x80]
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x3c]
add edi, ebx
add edx, eax
dec ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x3c], ecx
jne 0x41c29d
jmp 0x41c46c
sub eax, ecx
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x41c46c
mov dword [esp + 0x70], 0
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x18]
cdq
idiv dword [esp + 0x10]
xor ebp, ebp
mov ebx, eax
add ebx, ecx
test esi, esi
jle 0x41c376
mov byte [edi + ebp], bl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [esp + 0x74]
mov dl, byte [edi + ebp]
sub al, cl
add dl, al
mov byte [edi + ebp], dl
inc ebp
cmp ebp, esi
jl 0x41c356
mov ebx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x3c]
add edi, ebx
add edx, ecx
dec eax
mov dword [esp + 0x70], edx
mov dword [esp + 0x3c], eax
jne 0x41c33f
jmp 0x41c46c
sub eax, ecx
mov dword [esp + 0x80], 0
test esi, esi
jle 0x41c46c
mov ecx, eax
neg ecx
imul eax, esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x70], eax
cdq
idiv esi
mov edx, dword [esp + 0x18]
mov ebx, eax
mov eax, dword [esp + 0x10]
add ebx, edx
test eax, eax
jle 0x41c40b
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
lea edi, [edx + eax]
mov byte [edi], bl
call fcn.00425aa4
cdq
idiv dword [esp + 0x1c]
mov cl, byte [esp + 0x74]
mov dl, byte [edi]
sub al, cl
mov ecx, dword [esp + 0x7c]
add dl, al
mov byte [edi], dl
add edi, ecx
dec ebp
jne 0x41c3e6
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x80]
mov eax, dword [esp + 0x70]
inc edx
add eax, ecx
cmp edx, esi
mov dword [esp + 0x80], edx
mov dword [esp + 0x70], eax
jl 0x41c3c1
jmp 0x41c46c
mov eax, dword [esp + 0x10]
test eax, eax
jle 0x41c46c
mov dword [esp + 0x80], eax
xor ebp, ebp
test esi, esi
jle 0x41c455
call fcn.00425aa4
cdq
idiv ebx
sub al, byte [esp + 0x74]
add al, 0x80
mov byte [edi + ebp], al
inc ebp
cmp ebp, esi
jl 0x41c43f
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x80]
add edi, ecx
dec eax
mov dword [esp + 0x80], eax
jne 0x41c439
mov ebx, dword [esp + 0x20]
lea edi, [ebx + 0x58]
lea ecx, [ebx + 0xc0]
push edi
call fcn.0041abd0
lea esi, [ebx + 0xf4]
push edi
mov ecx, esi
call fcn.0041abd0
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x40]
and ecx, 0xff
push ecx
push edx
mov ecx, esi
call fcn.0041aaa0
push esi
lea ecx, [ebx + 0x8c]
call fcn.0041abd0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x5c
ret 0x14